有没有办法将枚举的名称/定义/类型作为字符串获取?我想将此值用于记录目的。我目前正在使用静态文本,但如果/当枚举重命名时,输出将不再正确。额外问题:枚举的名称/定义/类型的技术术语是什么?这是一个示例场景。public enum MyEnum{ Foo, Bar}var value = MyEnum.Bar;var name = ???var output = $"The enum is: {name}.{value}";预期结果:“枚举为:MyEnum.Bar”当前解决方案:var output = $"The enum is: MyEnum.{value}";
2 回答

慕村225694
TA贡献1880条经验 获得超4个赞
这可以通过nameof 解决:
var value = MyEnum.Bar;
var name = nameof(MyEnum);
var output = $"The enum is: {name}.{value}";
输出:
The enum is: MyEnum.Bar
我目前正在使用静态文本,但如果/当枚举重命名时,输出将不再正确。
使用nameof(MyEnum)将允许您在 VisualStudio 中自动重命名此引用,而静态字符串不会被自动捕获

BIG阳
TA贡献1859条经验 获得超6个赞
using System.IO;
using System;
public enum MyEnum
{
Foo,
Bar
}
class Program
{
static void Main()
{
var value = MyEnum.Bar;
var name = value.GetType().Name;
Console.WriteLine($"The enum is: {name}.{value}");
}
}
输出:
The enum is: MyEnum.Bar
- 2 回答
- 0 关注
- 229 浏览
添加回答
举报
0/150
提交
取消