我发现了 Convert.ToString 的一个奇怪行为,我想了解它为什么会这样。
看看下面的代码片段:
string obj = null;
var str = Convert.ToString(obj);
Console.WriteLine(str); // CORRECT: returns null;
到目前为止一切都很好,但是:
DBNull obj = DBNull.Value;
var str = Convert.ToString(obj);
Console.WriteLine(str); // ???: returns string.Empty ("")
和
object obj = null;
var str = Convert.ToString(obj);
Console.WriteLine(str); // ???: returns string.Empty ("")
它在我看来就像一个错误,因为当我转换为字符串并且输入为 NULL 时,结果应该是字符串的默认值,它也是 NULL。
最佳答案
Convert.ToString
有 a String
overload that does nothing :
Returns the specified string instance; no actual conversion is performed.
和 its
Object
overload定义如下:The string representation of value, or
String.Empty
if value is null.
这可能有点令人惊讶,但没有理由使用
Convert.ToString
在 String
首先表达。
关于c# - Convert.ToString 返回 string.empty 而不是 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50923613/