答案:C#中枚举转字符串常用ToString()方法获取成员名,如Color.Red.ToString()得"Red";需显示中文时可结合DescriptionAttribute与反射获取描述;编译时常量可用nameof(Color.Red)提升性能;而typeof(Color).Name仅获类型名。

在 C# 中,将枚举类型转换为字符串是一个常见操作。通常用于日志记录、用户界面显示或数据序列化等场景。实现方式简单直接,下面介绍几种常用方法。
最常用的方式是调用枚举值的 ToString() 方法,它会返回该枚举成员的名称字符串。
enum Color { Red, Green, Blue }
Color myColor = Color.Red;
string colorName = myColor.ToString(); // 结果是 "Red"
这是最直观、推荐的做法,适用于大多数情况。
如果希望显示更友好的名称(如中文),可以使用 DescriptionAttribute,然后通过反射获取描述文本。
using System.ComponentModel;
[Description("红色")]
public enum Color {
   [Description("红色")]
   Red,
   [Description("绿色")]
   Green,
   [Description("蓝色")]
   Blue
}
public static string GetDescription(Enum value)
{
   var field = value.GetType().GetField(value.ToString());
   if (field == null) return value.ToString();
   var attribute = (DescriptionAttribute)Attribute.GetCustomAttribute(
      field, typeof(DescriptionAttribute));
   return attribute?.Description ?? value.ToString();
}
调用示例:
Color c = Color.Red;
string desc = GetDescription(c); // 返回 "红色"
如果你只需要某个枚举成员的名称字符串,并且在编译时已知,可以用 nameof。
string name = nameof(Color.Red); // 得到 "Red"
这种方式不涉及运行时计算,性能好,但仅限于常量场景,不能用于变量。
若想获取枚举类型的名称(不是值),可使用:
string typeName = typeof(Color).Name; // 得到 "Color"
这和枚举值转字符串无关,注意区分用途。
基本上就这些。日常开发中,ToString() 足够应对多数需求。需要显示中文或说明性文字时,结合 DescriptionAttribute 是标准做法。不复杂但容易忽略细节。
以上就是C# 怎么将枚举类型转换为字符串_C# 枚举转字符串方法详解的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号