C# 枚举格式字符串
总目录
前言
当前文章为 C# 中的格式设置(格式化字符串) 大全 中的一个小章节。
一、概述
1. 基本信息
- 可以使用 Enum.ToString 方法,新建表示枚举成员的数字值、十六进制值或字符串值的字符串对象。
- 枚举格式说明符不区分大小写。
二、自定义数字格式说明符详解
1. G 或 g
- 将枚举项显示为字符串值,否则显示当前实例的整数值。
static void Main(string[] args){Console.WriteLine(((DayOfWeek)7).ToString("G")); // 输出: 7Console.WriteLine(ConsoleColor.Red.ToString("G")); // 输出: RedConsole.WriteLine(((DayOfWeek)7).ToString()); // 输出: 7Console.WriteLine(ConsoleColor.Red.ToString()); // 输出: Red}
- 如果枚举使用 FlagsAttribute 集进行定义,则每个有效项的字符串值会连接在一起(以逗号分隔)。
static void Main(string[] args){ var attributes = FileAttributes.Hidden | FileAttributes.Archive;Console.WriteLine(attributes.ToString("G")); // 输出: Hidden, ArchiveConsole.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")); // 输出: TuesdayConsole.WriteLine(((DayOfWeek)6).ToString("F")); // 输出: SaturdayConsole.WriteLine(((DayOfWeek)7).ToString("F")); // 输出: Monday, SaturdayConsole.WriteLine(ConsoleColor.Blue.ToString("F")); // 输出: Bluevar 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")); // 7Console.WriteLine(ConsoleColor.Cyan.ToString("D")); // 11var 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")); // 00000007Console.WriteLine(ConsoleColor.Cyan.ToString("X")); // 0000000Bvar 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")); // 输出: GreenConsole.WriteLine(myColor.ToString("F")); // 输出: GreenConsole.WriteLine(myColor.ToString("D")); // 输出: 3Console.WriteLine(myColor.ToString("X")); // 输出: 00000003}
结语
回到目录页:C# 知识汇总
希望以上内容可以帮助到大家,如文中有不对之处,还请批评指正。
参考资料
枚举格式字符串
概述:如何在 .NET 中设置数字、日期、枚举和其他类型的格式