【问题标题】:Best way to create a Helper class [duplicate]创建助手类的最佳方法[重复]
【发布时间】:2014-02-25 20:44:43
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

  • 这对于 SO 来说可能太宽泛了,有很多方法可以处理这个问题。如果您的值包含 null,您将在尝试调用 ToString() 时遇到异常
  • 我不同意这个问题太宽泛,我认为可以用几段来回答(特别是如果答案是用一般逻辑描述的,而不是提供实际代码)。但是,您应该重写问题以明确您想要什么。

标签: c# asp.net


【解决方案1】:

你可以创建一个扩展方法

public static class Extension{
    public static T Isnull<T>(this Object value){
        if(value == null || value == DBNull.Value)
            return default(T);

        (T)Convert.ChangeType(value, typeof(T)));
    }
}

被称为

int iValue = dr[colName].Isnull<int>();
string sValue = dr[colNameStr].Isnull<string>();

【讨论】:

  • 只是想知道在 null 值的情况下会返回什么值。
  • 如果是“int”则为零如果是“string”则为null等等,即变量类型的默认值
  • 所以我不希望它默认返回 0。如果它是 null 我想抛出异常。
  • 所以不是返回“default (T)”而是抛出异常
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 2016-04-13
  • 2012-07-05
  • 2012-10-22
  • 2013-04-05
  • 2016-07-20
  • 1970-01-01
  • 2013-03-22
相关资源
最近更新 更多