11
可空类型作为通用参数吗?
我想做这样的事情: myYear = record.GetValueOrNull<int?>("myYear"), 请注意,可为null的类型作为通用参数。 由于GetValueOrNull函数可以返回null,因此我的第一次尝试是: public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName) where T : class { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) { return (T)columnValue; } return null; } 但是我现在得到的错误是: 类型“ int?” 必须是引用类型,才能在通用类型或方法中将其用作参数“ T” 对!Nullable<int>是一个struct!所以我尝试将类约束更改为struct约束(并且副作用不再返回null): public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName) where T …