Aus der Dokumentation von Convert.ToString(string)
:
Rückgabewert
Typ:System.String
Wert wird unverändert zurückgegeben.
So null
input wird zu einem null
return value führen.
Aus der Dokumentation von Convert.ToString(object)
:
Rückgabewert
Typ:System.String
Die Zeichenfolgendarstellung von value oderString.Empty
if value ist null.
(wobei "Nichts" hier "null" bedeutet.)
So null
input wird zu einem leeren String (Nicht-Null-Referenz) Rückgabewert führen.
Weil:
Dies ist die Implementierung von Convert.ToString (Objektwert)
%Vor%und dies ist von Convert.ToString (String-Wert)
%Vor%Von diesem Link :
Es gibt 2 Überladungen von ToString, die hier zum Einsatz kommen
%Vor%Der C # -Compiler versucht im wesentlichen, die spezifischste Überladung auszuwählen, die mit der Eingabe arbeitet. Ein Nullwert kann in einen beliebigen Referenztyp konvertiert werden. In diesem Fall ist die Zeichenfolge spezifischer als das Objekt und wird daher als Gewinner ausgewählt.
Im Objekt null haben Sie den Typ des Ausdrucks als Objekt festgelegt. Dies bedeutet, dass es nicht länger mit der String-Überladung kompatibel ist und der Compiler die Objektüberladung auswählt, da es die einzig kompatible ist.
Die wirklich haarigen Details, wie das Binden funktioniert, werden in Abschnitt 7.4.3 der C # -Sprachspezifikation behandelt.
Tags und Links c#