Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# enum tostring另一个字符串_C#_.net_Vb.net - Fatal编程技术网

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#