我希望有一个方法,可以从可空数据库列中解析出枚举类型的值。我编写了下面这个方法(并且必须将T限制为结构体才能使其编译通过)。
它虽然可以编译通过,但我认为它是错误的,因为枚举类型不是结构体?
如果是这样的话,如何限制通用方法以表示我期望一个值类型,您无需向我抱怨“只有非空值类型可以作为'System.Nullable'的基础类型”。
它虽然可以编译通过,但我认为它是错误的,因为枚举类型不是结构体?
如果是这样的话,如何限制通用方法以表示我期望一个值类型,您无需向我抱怨“只有非空值类型可以作为'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;
}