C# enum tostring另一个字符串
这个问题没有回答我的问题,因为我需要尝试调用,是否有可以添加的扩展方法 我有一个枚举C# enum tostring另一个字符串,c#,.net,vb.net,C#,.net,Vb.net,这个问题没有回答我的问题,因为我需要尝试调用,是否有可以添加的扩展方法 我有一个枚举 public enum TimetableState { ["Error Message"] errormessage = 0, Great = 1 } 然后我想打电话 TimetableState.errormessage.ToString(); 并在属性“Error Message”中显示字符串, 或者如果调用Great.ToString(),则返回字符串'Great' 属性可以
public enum TimetableState
{
["Error Message"]
errormessage = 0,
Great = 1
}
然后我想打电话
TimetableState.errormessage.ToString();
并在属性“Error Message”中显示字符串,
或者如果调用Great.ToString(),则返回字符串'Great'
属性可以是任何内容,而不必是描述
我知道直接使用ToString()可以实现这一点,但如何实现呢
+++++++
这不是一个重复项,因为我希望得到与之相同的结果,但需要在枚举上调用ToString(),因为我需要一个列表排序和显示来使用它。
这可能吗?
++++++++更新:-别介意我的答案,以下是您要找的: 我没有找到解决方案,自己编写了一个助手函数:
public static string GetDescription(Enum value)
{
string ret = value.ToString();
FieldInfo fi = value.GetType().GetField(value.ToString());
if (fi != null)
{
var att = fi.GetCustomAttribute<DescriptionAttribute>(true);
if (att != null)
ret = att.Description;
}
return ret;
}
公共静态字符串GetDescription(枚举值)
{
字符串ret=value.ToString();
FieldInfo fi=value.GetType().GetField(value.ToString());
如果(fi!=null)
{
var att=fi.GetCustomAttribute(true);
如果(att!=null)
ret=附件说明;
}
返回ret;
}
这是~3年前的事了,如果我错过了一个内置解决方案,或者现在有一个,我会很乐意使用它。字符串描述与
TimetableState.errormessage
或0相关;它永远不会显示“Great”,因为它是一个不同的值/成员(1)@TonyTheLion-是的,我只看到下面的getdescription,(答案1),但我们只想调用toString,因为我们希望它作为dll易于他人使用。@puropoix-我编辑了原始问题以确认,谢谢。@f1韦德:你不必大喊大叫。我没有回答你的问题,对吗。我已经把它作为另一个的副本关闭了。在你看来,这个问题的独特之处是什么?顺便说一句,您不能像您所说的那样使用ToString
,因为它返回errormessage
而不是“Error Message”
。而且GETDESCRIPTION
不是一个可用的方法,您可以使用它,但必须像副本中的方法一样实现它。当没有描述时,返回默认名称(与dupe中相同)。我不知道如果不使用GetDescription
,您如何获得描述-它是一个属性-元数据;也许你想要一个共享字符串常量?“我没有找到解决方案”这里是:我站在正确的位置,那时已经有一个内置的解决方案,thxit不是内置的,它是OP写的(或者Jon Skeet写的)。我想你可以用这个,然后重写toString并使其返回GetDescription。?不能在c中的枚举上重写toString#