助手类实现共同任务

时间:2014-02-25 20:23:38

标签: c# asp.net helper

我想创建一个帮助类来完成一些常见的任务。

例如,我从数据库中检索一些结果,然后将值分配给变量。但是我记录中的某些字段也可能包含null。我想在分配之前检查该值是否包含任何null。

还有一些变量是int类型,所以在解析特定类型之前要检查。

int iValue=int.parse(Helpers.IsNull(dr[colName].toString()));
string strValue=Helpers.IsNull(dr[colName].toString());

我应该如何创建一个帮助器类以及我应该使用IsNull方法返回什么值?

有点混淆..

由于

2 个答案:

答案 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会通过你的代码。