【问题标题】:Helper class to achieve common task帮助类实现常见任务
【发布时间】:2014-03-28 08:00:42
【问题描述】:

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

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

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

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

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

有点困惑..

谢谢

【问题讨论】:

标签: c# asp.net helper


【解决方案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 的 default(string)。

您可以通过添加 defaultParameter 来定义“失败”的值来扩展它。

不过我不推荐使用这个。

【讨论】:

  • 如果您不推荐,那么最好的解决方案是什么?
  • 看看你的问题中的cmets。
【解决方案2】:

一种更激进的方法(可以消除问题)是从你的价值观中完全消除 NULL。

查询数据库时,最简单的方法是通过ISNULL()

你现在在哪里

SELECT MyColumn FROM MyTable

你去

SELECT ISNULL(MyColumn, '') AS MyColumn FROM MyTable

然后您可以假设没有 NULL 将通过您的代码。

【讨论】:

    猜你喜欢
    • 2011-08-27
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2020-10-31
    • 1970-01-01
    • 2015-10-30
    • 2011-07-15
    相关资源
    最近更新 更多