我正在尝试创建一个辅助函数,该函数将从以下任何类型的枚举中返回一个枚举名称:https ://msdn.microsoft.com/zh-cn/library/system.enum.getname%28v=vs.110% 29.aspx
我遇到了这个错误:
错误1找不到类型或名称空间名称'enumType'(您是否缺少using指令或程序集引用?)
从这个函数:
public static string EnumNameToString<T>( T enumType , T enumActual)
{
return Enum.GetName( typeof( enumType ), enumActual );
}
在这条线上出现错误:
return Enum.GetName( typeof( enumType ), enumActual );
我快速搜索了一下,但似乎只发现重命名项目的人正在遇到此错误,而不是使用泛型。
提前致谢 :)
编辑:
enum eEnumType
{
eEnum0,
eEnum1,
eEnum2
}
enum eEnumType2
{
e_Enum0,
e_Enum1,
e_Enum2
}
eEnumType anEnum;
eEnumType2 anEnum2;
string exampleStr = EnumNameToString<string>( eEnumType, eEnum0 );
string exampleStr2 = EnumNameToString<string>( eEnumType2, e_Enum2 );
期望exampleStr为“ eEnum0”。预期exampleStr2为“ e_Enum2”。
(对于泛型来说是新手,所以这可能还算不算什么,但希望能为我正在尝试实现的目标提供深刻的见解)。
再次感谢。
谢谢Machinarius(编辑:和Alex K.)我从您的回答中使它起作用了……与泛型混淆了。
回答:
public static string EnumNameToString<T>(T enumActual)
{
return Enum.GetName( typeof( T ), enumActual );
}
像这样使用:
string str = Helper.EnumNameToString<eEnumType>( eEnumType.eEnum0 );
完美的作品。谢谢-感激不尽!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句