Convert.ToString () und .ToString () -Methode in c # [doppelt]

8

Ich weiß, dass Convert.ToString(obj) einen Nullwert behandelt und ToString(obj) keinen Nullwert. Es bedeutet, dass ein Fehler ausgegeben wird, wenn der obj-Wert null ist.

%Vor%

Es ist korrekt und funktioniert wie erwartet. Aber,

%Vor%

Ich habe es so versucht. In diesem Fall wird jedoch kein Null-Referenz-Ausnahmefehler ausgegeben. Warum wird kein Null-Referenz-Ausnahmefehler ausgegeben? Kann jemand antworten?

Vorschläge willkommen.

    
Aishu 19.05.2015, 10:50
quelle

2 Antworten

9

Dies liegt daran, dass Nullable<int> (was der Typ ist, für den int? eine Abkürzung ist) eine Struktur ist und daher niemals null .

int? c = null weist c.Value tatsächlich als Null und nicht als c selbst zu, also ist c.ToString() immer noch eine gültige Operation.

    
Steve Lillis 19.05.2015 10:53
quelle
2

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

    
Daniel A. White 19.05.2015 10:52
quelle

Tags und Links