2015-05-19 24 views
8

Ich weiß, Convert.ToString(obj) NULL-Wert behandelt und ToString(obj) behandelt nicht null Wert. Es bedeutet, es wird einen Fehler auslösen, wenn der Wert obj null ist.Convert.ToString() und .ToString() -Methode in C#

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

Es ist korrekt und funktioniert wie erwartet. Aber ,

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

habe ich versucht, auf diese Weise. In diesem Fall wird jedoch kein Null-Referenz-Ausnahmefehler ausgegeben. Warum wird kein Null-Referenz-Ausnahmefehler ausgegeben? Kann jemand antworten?

Vorschläge begrüßen.

Antwort

2

Nullable<T> ist ein Struktur-/Werttyp. Die tatsächliche Nullwert ist nicht null, aber der Wert ist. object ist ein Klassen-/Referenztyp.

9

Dies ist, weil Nullable<int> (das ist der Typ, für den int? abgekürzt ist) ist eine Struktur und daher nie null.

int? c = null tatsächlich c.Value zuweist Null zu sein, anstatt c selbst, so c.ToString() ist immer noch eine gültige Operation.

Verwandte Themen