0

这段代码是:

public string GetSomething(string someValue)
{
   var x = Convert.ToString(someValue);
   return x.SomeStringMethod(); // e.g. x.ToLower(); 
}

与此相比,有任何我应该关注的问题:

public string GetSomething(string someValue)
{
   var x = someValue ?? string.Empty;
   return x.SomeStringMethod(); // e.g. x.ToLower(); 
}
4

2 回答 2

4
Convert.ToString(x)

where xis 类型为 string 并且为 null,返回null,所以它不做同样的事情

someValue ?? string.Empty;

您必须使用第二种方法来避免来自该行的空引用异常

 x.SomeStringMethod();

更具可读性的是:

if (someValue != null)
    return someValue.SomeStringMethod();
else
    return "";
于 2013-07-03T12:46:25.250 回答
0

如果字符串为空并且您想返回一个空字符串,那么我会建议这样做:

var x = String.IsNullOrEmpty(someValue) ? string.Empty:someValue;
return x.SomeStringMethod();

如果为空或 null,则避免nullReferenceException并返回空字符串,如果不是则返回实际字符​​串。

如果您想告诉用户该字符串的结果为空,您可以这样做:

var x = String.ReferenceEquals(someValue, null) ? "null" : someValue;
return x.SomeStringMethod();
于 2013-07-03T13:15:47.433 回答