Wenn ich Ihre Frage verstanden habe, besteht der Zweck von ToString()
darin, einen konsistenten Mechanismus zum Konvertieren von Objekten in Zeichenfolgen bereitzustellen. In Ihrem Console.WriteLine(value);
-Beispiel verwenden Sie eine überladene Version von WriteLine
, die ein int
benötigt, aber im allgemeinen Fall der Verwendung von object
benötigt das System einen Mechanismus zur Bereitstellung einer textuellen Darstellung.
Sie sollten ToString
in einer Klasse überschreiben, um eine gewünschte Zeichenfolgendarstellung zu erhalten. Die Console.WriteLine
-Methode ruft ToString
, pro MSDN auf:
Andernfalls wird die Methode
ToString
des Werts aufgerufen, um die Methode zu erzeugen Zeichenfolgendarstellung, und die resultierende Zeichenfolge wird in die Zeichenfolge geschrieben Standard-Ausgabestrom.
Nehmen Sie diese Klasse zum Beispiel:
%Vor%Versuchen Sie nun, es anzuzeigen:
%Vor% Die Klasse überschreibt ToString
nicht, daher lautet die Ausgabe etwa: MyNamespace.Program+Person
Überschreiben wir nun ToString
, um eine freundlichere Zeichenfolgendarstellung anzuzeigen:
Jetzt gibt Console.WriteLine
42 - Ahmad
zurück.
Die ToString()
von jedem Objekt soll eine String-Repräsentation dieses Objekts zurückgeben. In Ihrem Code
Int32, es gibt eine Zeichenfolge zurück, die dem Objekt entspricht (Wert der Ganzzahl).
%Vor%Hinzufügen ein wenig mehr Informationen, Wenn Sie Ihr Programm dekompilieren, finden Sie das
%Vor%Die obige Zeile würde
aufrufen %Vor%Während,
Console.WriteLine (Wert);
Die obige Zeile würde
aufrufen %Vor%Wenn Sie wissen wollen, wie der Cast gemacht wurde (ToString), könnte Ihnen das helfen.
Wie Sie vielleicht wissen, gibt Tostring()
eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. Sie haben Recht, beide Zeilen (mit und ohne Tostring()
) würden dasselbe Ergebnis zurückgeben, denn selbst wenn Sie Tostring()
nicht verwenden, wird es einen impliziten Aufruf geben, da Console.writeline()
eine String-Darstellung ausgibt.
Lesen Sie hier mehr über .
.NET ruft die ToString-Methode implizit auf, wenn Sie das Objekt an WriteLine übergeben.
In Programmiersprachen wird ToString () oder sein Äquivalent verwendet, um ein beliebiges Objekt textuell darzustellen. Oder es kann einfach gesagt werden, dass es nur verwendet wird, um irgendein Objekt in ein einfaches String-Format zu konvertieren.
Tags und Links c#