c# - 获取枚举的名称

标签 c# enums

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

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

这是一个示例场景。

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

最佳答案

这可以通过 nameof 解决:

var value = MyEnum.Bar;
var name = nameof(MyEnum);
var output = $"The enum is: {name}.{value}";

输出:

The enum is: MyEnum.Bar


I am currently using static text but if/when the enum is renamed then the output would no longer be correct.

使用 nameof(MyEnum) 将允许您在 VisualStudio 中自动重命名此引用,而静态字符串不会被自动捕获

关于c# - 获取枚举的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52312365/

相关文章:

c# - LINQ 查询中奇怪的扩展方法行为

c# - 是否可以将 setup.exe 和 setup.msi 图标更改为不同的图标?

c# - C# 中二进制文件的读写

c# - 使用带有 IdentityModel 4.1.1 的刷新 token 请求访问 token

java - 我正在尝试使用一系列数组并将它们的值配对

c++ - 在类中映射命名空间枚举

c# - 如何破解从C#Interop调用的C++代码

java - 将 Scala Case 对象用于 Java 枚举?

c# - 如何遍历标志枚举并创建针对每个值进行适当检查的复选框?

javascript - 在 Angular/Mongoose/Node.js 中使用枚举的最佳方法