我想创建一个帮助类来完成一些常见的任务。
例如,我从数据库中检索一些结果,然后将值分配给变量。但是我记录中的某些字段也可能包含null。我想在分配之前检查该值是否包含任何null。
还有一些变量是int类型,所以在解析特定类型之前要检查。
int iValue=int.parse(Helpers.IsNull(dr[colName].toString()));
string strValue=Helpers.IsNull(dr[colName].toString());
我应该如何创建一个帮助器类以及我应该使用IsNull方法返回什么值?
有点混淆..
由于
答案 0 :(得分:1)
你想要做的就是避免出现NullReferenceException。
您可以通过编写像这样的通用方法来实现这一目标
public static TValue GetValueSafe<TValue,TObject>(TObject obj, Func<TObject,TValue> accessor)
{
if(obj== null)
return default(TValue);
return accessor(obj);
}
然后像这样使用它:
string strValue = Helpers.GetValueSafe(dr[colName], o => o.toString());
这将返回toString的值,或者如果dr [colName] == null返回默认值(字符串)为null。
您可以通过添加defaultParameter来定义“失败”的值。
但是我不建议使用它。
答案 1 :(得分:1)
更激进的方法(可以解决问题)将完全消除你的值中的NULL。
最简单的方法是在查询数据库时通过ISNULL()
:
现在你在哪里
SELECT MyColumn FROM MyTable
你改为
SELECT ISNULL(MyColumn, '') AS MyColumn FROM MyTable
然后你可以假设没有NULL会通过你的代码。