搞这个的原因:
一般来说,搞个枚举如下:
public enum Sex
{
Man = 1,
Wommen = 5,
}
// 枚举转 int 再转 String
string str = ((int)Sex.Women).ToString();
偶尔写那么一两次还好,要用的多了比较麻烦。
稍微研究了下,可如此封装个扩展。
// 随便搞个静态类,写个静态方法,以下是我自测好OK的
public static class ExtendTools
{
public static string ToStringIndex<T>(this T input)
{
var type = typeof(T);
if (type.BaseType.FullName == "System.Enum")
{
object enumVal = input;
return ((int)enumVal).ToString();
}
return "";// 不是枚举类型返回 "" 还是 null 这个可以根据自己需要来
}
}
然后调用就简单了,直接用枚举点就行,但不是枚举类型返回 “” 还是 null 这个可以根据自己需要来。
用法示例:
var res = Sex.Wommen.ToStringIndex();
Console.WriteLine(res);
// 输出结果就是我上面定义的字符串类型的 5 了
Done.