2016-03-29 6 views
-2

Können Sie das Verhalten erklären, warum dieser Code dieses Ergebnis erzeugt?Anonyme Verhaltensweise

var person = new { name = "George", age = 30}; 
WriteLine(person); 

und Ausgangs ist:

{ name = "George", age = 30}

+0

Was würden Sie von der Ausgabe erwarten? –

Antwort

3

WriteLine(object) ruft implizit ToString() auf die zugrunde liegende Objekt. Die Methode ist virtuell, dh sie kann von abgeleiteten Typen überschrieben werden.

Anonyme Typen überschreiben object.ToString, um ihre Eigenschaften und Werte anzuzeigen. Der Compiler generiert die überschriebene Methode und kann nicht zur Kompilierungszeit oder zur Laufzeit geändert werden.

+0

Danke, ich werde die beste Antwort wählen. – Johnson