Was ist die Notwendigkeit von ToString () in C #?

8

Ich verwende den folgenden Code in cis. Aber beide WriteLine-Anweisungen geben das gleiche Ergebnis 25. Was ist dann nötig, um Tostring in cis zu konvertieren? Gibt es einen besonderen Zweck?

%Vor%     
abubakkar 13.07.2014, 05:56
quelle

7 Antworten

8

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.

    
Elliott Frisch 13.07.2014, 06:00
quelle
5

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:

%Vor%

Jetzt gibt Console.WriteLine 42 - Ahmad zurück.

    
Ahmad Mageed 13.07.2014 06:12
quelle
3

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%     
Sajeetharan 13.07.2014 05:58
quelle
3

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.

    
Rangesh 13.07.2014 07:58
quelle
2

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 .

    
Nivedita 13.07.2014 06:04
quelle
1

.NET ruft die ToString-Methode implizit auf, wenn Sie das Objekt an WriteLine übergeben.

    
user2920518 13.07.2014 06:16
quelle
1

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.

    
jungNitesh 13.07.2014 06:58
quelle

Tags und Links