尝试在处理数据库记录检索的方法中分配可为空类型作为泛型参数时,例如 GetValueOrNull
最初使用类约束,允许返回 null。但是,可空类型(例如 int?)是结构体,禁止作为类约束所需的引用类型。
要纠正此问题,请将约束更改为允许不可为空返回值的结构体。但是,当尝试分配可为空类型时,会出现错误,指示需要不可为空值类型。
要克服这些限制,请考虑以下策略:
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; }
通过采用这种方法,您可以授权GetValueOrNull 方法处理可为空类型,确保无缝检索数据库值。
以上是检索数据库记录时如何将可空类型作为通用参数处理?的详细内容。更多信息请关注PHP中文网其他相关文章!