我有这样的代码。
string b=null;
string a = Convert.ToString(b);
参考:
但是,当我将 b 转换为字符串时,我只得到空值而不是空字符串。但几天前,我也使用相同的 convert.tostring() 进行了空覆盖。在那它工作正常,但现在不工作。我在这里旋转我的头,请帮助我为什么会这样?唯一的问题是我在 3.5 框架中工作,但现在是 4.0 。
我有这样的代码。
string b=null;
string a = Convert.ToString(b);
参考:
但是,当我将 b 转换为字符串时,我只得到空值而不是空字符串。但几天前,我也使用相同的 convert.tostring() 进行了空覆盖。在那它工作正常,但现在不工作。我在这里旋转我的头,请帮助我为什么会这样?唯一的问题是我在 3.5 框架中工作,但现在是 4.0 。
Convert.ToString(string) 将返回未更改的字符串。根据文档,每个版本的框架都是如此:
你误会了,调用会Convert.ToString((string)null)
返回除 null 之外的任何内容。您可能调用的是Convert.ToString((object)null)
. 这将返回空字符串。
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
尝试这个 :
字符串 a = (b == null) ?字符串。空:b;
当我们进行任何转换时,请尝试检查它是否为空。
尝试这样做
if(!String.IsNullOrEmpty(b))
{
string c=Convert.ToString(b);
}