为了账号安全,请及时绑定邮箱和手机立即绑定

获取枚举的名称

获取枚举的名称

C#
德玛西亚99 2022-01-15 19:35:22
有没有办法将枚举的名称/定义/类型作为字符串获取?我想将此值用于记录目的。我目前正在使用静态文本,但如果/当枚举重命名时,输出将不再正确。额外问题:枚举的名称/定义/类型的技术术语是什么?这是一个示例场景。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 中自动重命名此引用,而静态字符串不会被自动捕获


查看完整回答
反对 回复 2022-01-15
?
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


查看完整回答
反对 回复 2022-01-15
  • 2 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号