【问题标题】:Enum as Generic [duplicate]枚举为通用[重复]
【发布时间】:2014-12-22 03:02:25
【问题描述】:

所以我需要编写一个进行查找的方法。它需要获取一个枚举泛型,然后将枚举值转换为字符串并返回

这是我目前所拥有的

public static object lookupColumn<TEnum>(int? id, string defaultValue="")
        where TEnum : struct, IConvertible
{
    if (!(typeof(TEnum).IsEnum))
        throw new ArgumentException("TEnum must be of type Enum");

    if (!id.HasValue)
        return defaultValue;

    TEnum enumValue = (TEnum) id.Value; //This line doesn't compile
    return enumValue.ToString();
}

有什么建议吗?

编辑:导致我麻烦的部分是将 int 转换为枚举

【问题讨论】:

标签: c# generics enums


【解决方案1】:

为什么不使用 Enum.Parse 而不是直接强制转换?对要转换的值调用 ToString。

【讨论】:

  • 我没有意识到 Enum.Parse 方法可以接受 int 作为字符串。应该更好地阅读文档。 (msdn.microsoft.com/en-us/library/…)
  • 您还可以使用 Enum.GetName() 或通过对对象 TEnum enumValue = (TEnum)(object)id.Value; 进行中间转换来使您的演员正常工作
猜你喜欢
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 2020-05-24
  • 2013-03-23
相关资源
最近更新 更多