0
我發現C#不允許泛型類型是枚舉,所以我做了一些研究,在網上找到這個線程Anyone know a good workaround for the lack of an enum generic constraint?,然後我安裝了NuGet包,但在我的擴展方法,(T)x.ToInteger()
拋出不能將類型'int'轉換爲'T'。因此GetDescription()
也不起作用,因爲它是我另一個枚舉擴展方法來獲取枚舉值的描述。如果我用指定的Enum替換'T',下面的代碼將起作用。任何幫助表示讚賞。 這裏是我的分機methos:無法施展整數的枚舉泛型方法
public static string ToEnumDescription<T>(this string enumValue)
where T: struct, IEnumConstraint
{
if (enumValue.IsNullOrEmpty()) return string.Empty;
var list = enumValue.Split(',');
var descriptionList = new List<String>();
foreach (var x in list)
{
var description = (x.IsInteger() && Enum.IsDefined(typeof(T), x.ToInteger()))
? ((T)x.ToInteger()).GetDescription()
: string.Empty;
descriptionList.Add(description);
}
return descriptionList.ToCommaSeperatedNoQuote();
}
很好,現在我可以將int轉換爲T,但在使用GetDescription()擴展方法之前,'T'必須轉換爲System.Enum。 –