Besonders VBA-Programmierer werden eines in .NET schmerzlich vermissen: Das gute alte Direktfenster.
Natürlich bietet auch Visual Studio so ein Direktfenster. Aber irgendwie arbeitet es ganz anders als wir es von VBA kennen. Kann man denn nicht was tun, um wenigstens so was Ähnliches wie das Direktfenster zur Ausgabe von Daten zu bekommen? Man kann! Zumindest für die Ausgabe von Daten.
Stellen Sie einfach in den Projekteigenschaften (Projekt/[Projektname]-Eigenschaften) den Eintrag “Ausgabetyp” auf “Konsolenanwendung”.
Beim Start der Anwendung erscheint nun ein “DOS-Fenster” (eine Konsole). In diese Konsole kann man nun von der Windows-Anwendung aus hereinschreiben. Das geht zum Beispiel über den Befehl
System.Console.WriteLine(“Ausgabetext”);
Wie sehr ich doch manchmal mein gutes altes VBA vermisse …
Gerade für Einsteiger warten bei der Programmierung in .NET so einige Fallen. So ist es beispielsweise nicht immer leicht, auf Anhieb den Datentyp eines Objekts zu ermitteln. Dazu ein praktisches Beispiel:
In ein Formular wurde eine ComboBox eingebaut und über eine DataTable mit Daten gefüllt. Beim Klick auf eine Schaltfläche soll nun der Wert einer nicht angezeigten Spalte ermittelt und ausgegeben werden. Dabei stellt sich die Frage, über welche Eigenschaft oder Methode nun auf die Datenzeile der ComboBox zugegriffen werden kann. Mit Hilfe von IntelliSense lässt man sich mit “this.ComboBox.” nun die möglichen Einträge anzeigen, und sieht sich in der QuickInfo an, was die jeweilige Eigenschaft bzw. Methode zurückgibt.
Nun wissen wir, dass die aktuelle Datenzeile über this.ComboBox.SelectedItem zurückgegeben werden kann. Doch wie kommt jemand darauf, der sich noch nicht so gut auskennt? Die QuickInfo für diesen Eintrag zeigt an, dass der Rückgabewert vom Typ “object” ist.

Wie kommt man nun darauf, dass SelectedItem eine DataRowView darstellt?
Mit einem einfachen Trick!
Wir schreiben in unser Ereignis einfach ein
MessageBox.Show(this.ComboBox.SelectedItem.ToString());
Wenn wir die Anwendung nun starten und den Wert abrufen, können wir in der MessageBox den Text
System.Data.DataRowView
lesen.
Es ist also möglich, den jeweiligen Datentyp eines Rückgabewertes zu entschlüsseln. Leider muss man dazu manchmal einen kleinen Umweg gehen. Das ist zwar nicht schön, aber immerhin gibt es eine Möglichkeit, an die gewünschte Information zu gelangen.