簡體   English   中英

Convert.ToString返回string.empty而不是null

[英]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的字符串表示形式,如果valuenull ,則為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM