一目了然,
public static class Conversion
{
public static T Read<T>(object value) where T :class
{
if (value is DBNull) return null;
if (value is null) return null;
if (value is Enum) return (T)Enum.Parse(typeof(T), value.ToString(), true);
return (T)Convert.ChangeType(value, typeof(T));
}
}
When调用Read<T>
函数
var myVariable = Conversion.Read<bool?>(Row[nameof(IsFetchNextRecordAfterDelete)]);
错误CS0452类型“布尔?”必须是引用类型才能使用在通用类型或方法中将其作为参数“ T”'Conversion.Read(对象)'
Wonder为什么?布尔?为null,表示它是引用类型,并且通用方法声明为where T : class
'bool?'是not
where T :class