【发布时间】:2012-07-30 10:04:27
【问题描述】:
我希望有一个方法可以从可为空的数据库列中解析一个枚举。 我在下面编写了这个方法(并且必须将 T 限制为一个结构才能使其编译)。
它确实可以编译,但我认为它是错误的,因为枚举不是结构? 如果是这样,我如何限制通用方法说我期待一个 ValueType 你不必抱怨我“只有不可为空的值类型可能是'System.Nullable'的基础
private static T? ParseEnum<T>(DataRow row, string columnName)
where T : struct
{
T? value = null;
try
{
if (row[columnName] != DBNull.Value)
{
value = (T)Enum.Parse(
typeof(T),
row[columnName].ToString(),
true);
}
}
catch (ArgumentException) { }
return value;
}
【问题讨论】:
-
枚举只是顶部加糖的整数,所以它们确实是结构。
标签: c# generics enums nullable