允许可空类型作为值类型函数的通用参数
考虑需要从 DbDataRecords 中检索可能为空值的值。尝试使用可为空类型作为泛型参数最初会导致错误,指示可为空类型必须是引用类型。随后,将约束更改为结构体会导致另一个错误,指出可为空类型必须是不可为空的。
要解决此问题,解决方案是将返回类型修改为 Nullable
static void Main(string[] args) { int? i = GetValueOrNull<int>(null, string.Empty); } public static Nullable<T> GetValueOrNull<T>(DbDataRecord reader, string columnName) where T : struct { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) return (T)columnValue; return null; }
现在,可空类型可以用作处理值类型的函数的泛型参数,同时允许在涉及 DbDataRecords 的操作期间出现空值的可能性。
以上是可空类型如何用作处理 DbDataRecords 中潜在空值的值类型函数的通用参数?的详细内容。更多信息请关注PHP中文网其他相关文章!