我想做一个辅助函数,返回任何类型的枚举名称-从:https://msdn.microsoft.com/en-us/library/system.enum.getname%28v=vs.110%29.aspx
我遇到了这个错误:
错误1无法找到类型或命名空间名称'enumType'您缺少using指令或程序集引用吗?)
From this function:
public static string EnumNameToString<T>( T enumType , T enumActual)
{
return Enum.GetName( typeof( enumType ), enumActual );
}
本行错误:
return Enum.GetName( typeof( enumType ), enumActual );
我有一个快速搜索,但似乎只发现人们重命名项目等得到这个错误,而不是这似乎在我使用泛型。
Thanks in advance:)
编辑:
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 (EDIT: and Alex K.)我从你的回答中找到了答案…与泛型混淆了。
答:
public static string EnumNameToString<T>(T enumActual)
{
return Enum.GetName( typeof( T ), enumActual );
}
使用:string str = Helper.EnumNameToString<eEnumType>( eEnumType.eEnum0 );
完美工作。谢谢——一个感恩的小肿块!