我一直在玩泛型,希望我能得到一些关于我创建的函数的反馈或建议,以帮助处理从数据库中读取空值。我主要关心的是 if 语句。有没有更好的方法来确定 T 是否是字符串等?谢谢。
public static T CheckNull<T>(object value)
{
if ((value != null) && value.Equals(DBNull.Value))
{
if (object.ReferenceEquals(typeof(T), typeof(String)))
value = string.Empty;
else if (object.ReferenceEquals(typeof(T), typeof(Boolean)))
value = false;
else
value = null;
}
return (T)value;
}
最佳答案
无论 T
的类型如何,您都可以回退到 default(T)
,它将为给定类型提供默认值 (、 string.Empty
0
、false
、null
等...):
value = default(T);
编辑:default(string)
会返回 null
。
关于c# - 这是使用泛型处理数据库中空值读取的安全有效方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1438888/