当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/516203.html

相关文章:

  • 【51单片机-零基础chapter1】
  • 记录:导出功能:接收文件流数据进行导出(vue3)
  • 基于Spring Boot + Vue3实现的在线汽车保养维修预约管理系统源码+文档
  • PHP框架+gatewayworker实现在线1对1聊天--接收消息(7)
  • 18.1、网络安全策略分类 流程 内容
  • 深入理解连接池:从数据库到HTTP的优化之道
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue智慧养老医护系统(高质量源码,提供文档,免费部署到本地)【提供源码+答辩PPT+文档+项目部署】
  • 关于使用vue-cropperjs上传一张图后,再次上传时,裁剪的图片不更新的问题
  • 学习threejs,导入VTK格式的模型
  • 大麦抢票科技狠活
  • PostgreSQL 表达式
  • WPF区域导航+导航参数使用+路由守卫+导航日志
  • Springboot启动报错:Failed to start bean ‘documentationPluginsBootstrapper‘
  • qt-C++笔记之动画框架(Qt Animation Framework)入门
  • C++26 函数契约(Contract)概览
  • Flink CDC 自定义函数处理 SQLServer XML类型数据 映射 doris json字段方案
  • F.interpolate函数
  • 华为交换机---自动备份配置到指定ftp/sftp服务器
  • nginx学习之路-nginx配置https服务器
  • UCAS 24秋网络认证技术 CH10 SSL 复习
  • 【linux内核分析-存储】EXT4源码分析之“文件删除”原理【七万字超长合并版】(源码+关键细节分析)
  • 代码随想录 day62 第十一章 图论part11
  • springboot571基于协同过滤算法的私人诊所管理系统(论文+源码)_kaic
  • Uniapp Android 本地离线打包(详细流程)
  • vite+vue3动态引入资源文件(问题已解决但离了个大谱)
  • 通过 4 种方式快速将音乐从 iPod 传输到 Android
  • ArcGIS中怎么把数据提取到指定范围(裁剪、掩膜提取)
  • 【Vaadin flow 实战】第3讲-快速上手构建VaadinFlow+Springboot的全栈web项目
  • HBase Cassandra的部署和操作
  • 用户界面软件01