我想有一个方法,将从一个可空的数据库列解析一个枚举。 我在下面写了这个方法(并且必须将T限制在一个结构中才能编译)。通用可为空枚举
它确实编译,但我相信它的错误作为枚举不是结构? 如果是这样,我怎么限制泛型方法的说,我期待一个值类型,你不必在我抱怨说:“只有非空值类型可以潜在的‘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;
}
枚举只是与顶部糖整合,所以他们确实是结构。 – Jens 2012-07-30 10:06:51