[英]Convert.ToString returns string.empty instead of null
我發現了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 ("")
它看起來像一個bug,因為當我轉換為字符串並且輸入為NULL時,結果應該是字符串的默認值,也是NULL。
Convert.ToString
有一個什么都不做的String
重載 :
返回指定的字符串實例; 沒有執行實際轉換。
因此定義了它的Object
重載 :
value的字符串表示形式,如果value為null ,則為
String.Empty
。
這可能有點令人驚訝,但首先沒有理由在String
表達式上使用Convert.ToString
。
這是記錄在案的行為
Convert.ToString Method (Object)
value的字符串表示形式,如果value為null,則為String.Empty。
Convert.ToString Method (String)
值不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.