Grundsätzlich werden beide verwendet, um einen Wert in einen String zu konvertieren, aber es gibt einen grundlegenden Unterschied zwischen ihnen:
Wenn wir ein NULL-Objekt haben, behandelt Convert.ToString(Object);
den NULL-Wert, während Object.ToString();
den NULL-Wert nicht behandelt und NULL-Referenzausnahme auslöst.
Es gibt einen einfachen aber wichtigen Unterschied zwischen ihnen ...
ToString () löst eine Ausnahme aus, wenn das Objekt null ist
Im Falle von object.ToString (), wenn das Objekt null ist, wird also NullReferenceException ausgelöst.
Convert.ToString () return string.Empty im Falle eines Null-Objekts
(string) cast weisen Sie das Objekt im Falle von null zu
Also im Falle von MyObject o = (Zeichenfolge) NullObject;
Wenn Sie jedoch o verwenden, um auf eine Eigenschaft zuzugreifen, wird die NullReferenceException ausgelöst.
Zunächst ist Object.ToString () eine virtuelle Funktion in der Basisklasse Object. Jede Klasse kann ToString () überschreiben, um eine eigene Implementierung bereitzustellen. Convert.ToString () ist eine statische Methode, die versucht, viele verschiedene Argumente zu verwenden und sie in eine sinnvolle Zeichenfolge umzuwandeln. Object.ToString () wird auch fehlschlagen, wenn das Objekt, das es aufruft, null ist.
Darüber hinaus konvertiert Object.ToString () das Objekt nicht immer in die Zeichenfolgenform, die Sie möglicherweise erwarten. Zum Beispiel gibt die Basisfunktion Object.ToString () immer den vollständig qualifizierten Typnamen des Objekts zurück. Jede Klasse kann ToString () implementieren, wie sie es wünscht, und das muss nicht unbedingt etwas Sinnvolles sein.
Es gibt einen grundlegenden Unterschied zwischen Convert.ToString und .Tostring. Convert.ToString behandelt die Null-Ausnahme, aber .Tostring löst den Fehler
aus