我有这样的代码。
string b=null;
string a = Convert.ToString(b);
参考:
Checking for null before ToString()
但是当我将b转换为字符串时我只得到空值而不是空字符串。但是几天前我也使用相同的convert.tostring()进行了空转换。在那它工作正常,但现在不工作。我在这里转动我的头,请帮助我为什么会发生这种情况?唯一的事情是我在3.5框架中工作但现在4.0。
答案 0 :(得分:5)
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
答案 1 :(得分:0)
试试这个:
字符串a =(b == null)? string.Empty:b;
答案 2 :(得分:0)
当我们进行任何转换时,尝试检查它是否为空。
尝试这样做
if(!String.IsNullOrEmpty(b))
{
string c=Convert.ToString(b);
}