【问题标题】:convert Null Value from convert.tostring()从 convert.tostring() 转换 Null 值
【发布时间】:2012-06-20 08:59:41
【问题描述】:

我有这样的代码。

string b=null;
string a = Convert.ToString(b);

参考来源:

Checking for null before ToString()

但是,当我将 b 转换为字符串时,我只得到空值而不是空字符串。但几天前,我也使用相同的 convert.tostring() 进行了空覆盖。在那它工作正常,但现在不工作。我在这里旋转我的头,请帮助我为什么会这样?唯一的问题是我在 3.5 框架中工作,但现在是 4.0 。

【问题讨论】:

    标签: asp.net c#-4.0


    【解决方案1】:

    Convert.ToString(string) 将返回未更改的字符串。根据文档,每个版本的框架都是如此:

    你误会了,调用 Convert.ToString((string)null) 会返回除 null 之外的任何内容。你可能打电话给Convert.ToString((object)null)。这个will return 空字符串。

    string a = Convert.ToString((object)null);
    string b = Convert.ToString((string)null);
    // a now equals string.Empty, but b equals null.
    

    您可以像我一样将字符串 b 转换为对象,但我建议您改用 null-coalescing 运算符:

    string a = b ?? string.Empty
    

    【讨论】:

    • 是的,我知道我们需要将 null 值作为对象数据类型而不是字符串数据类型传递。你也对。
    【解决方案2】:

    试试这个:

    字符串 a = (b == null) ? string.Empty : b;

    【讨论】:

    • 相当于string a = b ?? string.Empty
    【解决方案3】:

    当我们进行任何转换时,尝试检查它是否为空。

    试着这样做

    if(!String.IsNullOrEmpty(b))
    {
    string c=Convert.ToString(b);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-28
      • 2016-02-23
      • 1970-01-01
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      相关资源
      最近更新 更多