2015-05-19 30 views
8

我知道Convert.ToString(obj)處理空值,ToString(obj)不處理空值。這意味着如果obj值爲null,則會引發錯誤。c#中的Convert.ToString()和.ToString()方法#

ex:- 
object b = null; 
textBox1.Text = b.ToString(); // It will throw a null reference exception because the object value is null. 

這是正確的,按預期工作。 但是,

ex:- 
int? c = null; 
textBox1.Text = c.ToString(); 

我試過這種方式。 但在這種情況下,它不會引發空引用異常錯誤。 爲什麼不拋出空引用異常錯誤。任何人都能回答?

建議歡迎。

回答

2

Nullable<T>是一個struct/value類型。實際的可空值不爲空,但值爲。 object是一個類/引用類型。

9

這是因爲Nullable<int>(這是int?的簡寫形式)是一個結構,因此從來沒有null

int? c = null其實是指定c.ValueNull而不是c本身,所以c.ToString()仍然是一個有效的操作。