总目录
前言
当前文章为 C# 中的格式设置(格式化字符串) 大全 中的一个小章节。
一、概述
1. 基本信息
- 可以使用 Enum.ToString 方法,新建表示枚举成员的数字值、十六进制值或字符串值的字符串对象。
- 枚举格式说明符不区分大小写。
二、自定义数字格式说明符详解
1. G 或 g
- 将枚举项显示为字符串值,否则显示当前实例的整数值。
static void Main(string[] args)
{
Console.WriteLine(((DayOfWeek)7).ToString("G")); // 输出: 7
Console.WriteLine(ConsoleColor.Red.ToString("G")); // 输出: Red
Console.WriteLine(((DayOfWeek)7).ToString()); // 输出: 7
Console.WriteLine(ConsoleColor.Red.ToString()); // 输出: Red
}
- 如果枚举使用 FlagsAttribute 集进行定义,则每个有效项的字符串值会连接在一起(以逗号分隔)。
static void Main(string[] args)
{
var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("G")); // 输出: Hidden, Archive
Console.WriteLine(attributes.ToString()); // 输出: Hidden, Archive
}
2. F 或 f
- 将枚举项显示为字符串值。
- 如果值可以显示为枚举中的项的合计(即使 Flags 属性不存在),则每个有效项的字符串值会连接在一起(以逗号分隔)。
- 如
((DayOfWeek)7).ToString("F")
,7 是1 和6 的和,因此结果为Monday, Saturday
- 如
static void Main(string[] args)
{
Console.WriteLine(((DayOfWeek)2).ToString("F")); // 输出: Tuesday
Console.WriteLine(((DayOfWeek)6).ToString("F")); // 输出: Saturday
Console.WriteLine(((DayOfWeek)7).ToString("F")); // 输出: Monday, Saturday
Console.WriteLine(ConsoleColor.Blue.ToString("F")); // 输出: Blue
var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("F")); // 输出: Hidden, Archive
}
3. D 或 d
- 以尽可能短的表示形式将枚举项显示为整数值。
static void Main(string[] args)
{
Console.WriteLine(((DayOfWeek)7).ToString("D")); // 7
Console.WriteLine(ConsoleColor.Cyan.ToString("D")); // 11
var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("D")); // 34
}
4. X 或 x
- 将枚举项显示为十六进制值。
- 根据需要以前导零表示此值,以确保在枚举类型的基础数值类型中,结果字符串的每个字节都有两个字符。
static void Main(string[] args)
{
Console.WriteLine(((DayOfWeek)7).ToString("X")); // 00000007
Console.WriteLine(ConsoleColor.Cyan.ToString("X")); // 0000000B
var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("X")); // 00000022
}
三、综合案例
下面的示例定义一个名为 Colors 的枚举,它由三个项组成:Red、Blue 和 Green。
public enum Color
{
Red = 1,
Blue = 2,
Green = 3
}
static void Main(string[] args)
{
Color myColor = Color.Green;
Console.WriteLine(myColor.ToString("G")); // 输出: Green
Console.WriteLine(myColor.ToString("F")); // 输出: Green
Console.WriteLine(myColor.ToString("D")); // 输出: 3
Console.WriteLine(myColor.ToString("X")); // 输出: 00000003
}
结语
回到目录页:C# 知识汇总
希望以上内容可以帮助到大家,如文中有不对之处,还请批评指正。
参考资料
枚举格式字符串
概述:如何在 .NET 中设置数字、日期、枚举和其他类型的格式