C# 枚举格式字符串

发布于:2025-02-11 ⋅ 阅读:(78) ⋅ 点赞:(0)

总目录


前言

当前文章为 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 中设置数字、日期、枚举和其他类型的格式


网站公告

今日签到

点亮在社区的每一天
去签到