从convert.tostring()转换Null值

时间:2012-06-18 11:39:21

标签: asp.net c#-4.0

我有这样的代码。

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

参考:

Checking for null before ToString()

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

3 个答案:

答案 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);
}