3

我有这样的代码。

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

参考:

在 ToString() 之前检查 null

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

4

3 回答 3

5

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
于 2012-06-18T11:44:19.203 回答
0

尝试这个 :

字符串 a = (b == null) ?字符串。空:b;

于 2012-06-18T11:49:35.937 回答
0

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

尝试这样做

if(!String.IsNullOrEmpty(b))
{
string c=Convert.ToString(b);
}
于 2012-06-18T12:08:05.680 回答