DebuggerDisplay

Es ist ja eine schöne Sache, wie einfach man die Anzeige von Objekten im Debugger verbessern kann. Man muss nur wissen, dass der Debugger für diese Anzeige die ToString-Methoden der jeweiligen Objekte aufruft, und dann eben diese Methoden entsprechend programmieren.

Umso überraschter war ich deshalb, als dieses Vorgehen einfach nicht klappen wollte, als ich eine Ableitung der Klasse TextBox programmierte und mir im Debugger nicht den momentanen textuellen Inhalt des Controls wünschte, sondern seinen Namen, um besser verfolgen zu können, was wann mit welchem Control aus einer ganzen Gruppe von Controls passierte: Ein Überschreiben von ToString hatte keinerlei Effekt im Debugger.

Ich habe nicht herausgefunden, warum genau das so ist, aber jedenfalls kann man mit Hilfe des DebuggerDisplay-Attributs erreichen, dass auch bei einer TextBox der Debugger die Methode ToString verwendet:

[DebuggerDisplay("{ToString()}")]
public class MyTextBox : TextBox {
  ...
    public override string ToString() {
      return Name;
    }
}
Veröffentlicht in Keine Kategorie. Schlagwörter: , . Leave a Comment »

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: