猿问

获取枚举的名称

有没有办法将枚举的名称/定义/类型作为字符串获取?我想将此值用于记录目的。我目前正在使用静态文本,但如果/当枚举重命名时,输出将不再正确。


额外问题:枚举的名称/定义/类型的技术术语是什么?


这是一个示例场景。


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}";


德玛西亚99
浏览 230回答 2
2回答

慕村225694

这可以通过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阳

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
随时随地看视频慕课网APP
我要回答