Von C# zu VB: Basics, Variablen, Operatoren

Wenn Sie ein Abonnement des Magazins 'DATENBANKENTWICKLER' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Von C# zu VB: Basics, Variablen, Operatoren

Wer bisher mit C# gearbeitet hat und zu VB wechseln möchte, sieht sich bei der Entwicklung von WPF-Anwendungen einigen Änderungen gegenüber. Dieser Artikel fasst die wichtigsten Elemente der Sprache Visual Basic 2015 für den Entwickler in Bezug auf die bisher in diesem Magazin unter C# durchgeführten Programmierungen zusammen. Zum Experimentieren mit den Beispielen nutzen wir das Tool LINQPad 5. Außerdem schauen wir uns in diesem Artikel die Grundlagen der Sprache an, die wir im Artikel »Von VBA zu C#: Erste Anwendung und Variablen« betrachtet haben.

WPF-Fenster: Wo ist der Code im Code behind-Modul?

Wer zuvor mit C# gearbeitet hat, weiß, dass ein Code behind-Modul eines WPF-Fensters bereits einigen Code enthält. Wenn Sie hingegen ein VB/WPF-Projekt erstellen und sich das Code behind-Fenster ansehen, erblicken Sie eine ziemliche Leere.

Dies ist der vollständige Inhalt des Moduls, hier am Beispiel von MainWindow.xaml.vb:

Class MainWindow
End Class

Konstruktor hinzufügen

Den liebgewonnenen Konstruktor, also die Methode, die automatisch beim Initialisieren des Fensters ausgelöst wird und die Sie auch so anpassen können, dass Sie beim Aufruf benutzerdefinierte Parameter übergeben können, fehlt gänzlich. Wie also wollen Sie beim Aktionen programmieren, die beim Initialisieren des Fensters durchgeführt werden geschweige denn eigene Parameter definieren?

Das geht einfacher, als Sie denken – Sie fügen einfach die Zeile Public Sub New() hinzu und erhalten dann die wie folgt automatisch ergänzte Methode:

Public Sub New()
         ' Dieser Aufruf ist für den Designer erforderlich.
         InitializeComponent()
         ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub

Hier können Sie dann eigene, beim Initialisieren auszuführende Anweisungen eintragen. Außerdem können Sie die New()-Methode natürlich auch um benutzerdefinierte Parameter erweitern.

Groß- und Kleinschreibung

Was als Nächstes auffällt, ist die Großschreibung von Schlüsselwörtern. Dies ist einer der Unterschiede zwischen C# und Visual Basic 2015.

Case Sensitive oder nicht?

Case Sensitive bedeutet, dass die Groß- und Kleinschreibung einen Unterschied macht – a ist also ungleich A. Das heißt auch, dass Sie unter C# beispielsweise die folgenden beiden String-Variablen deklarieren können:

string a;
string A;

Unter Visual Basic erhalten Sie für die zweite Zeile einen Fehler:

Variablen und Typen/Klassen können jedoch in beiden Sprachen mit unterschiedlicher Groß-/Kleinschreibung genutzt werden, also etwa wie folgt, wo wir Test1 als Klassennamen und test1 als Objektname auf Basis dieser Klasse nutzen:

Beispiele mit LINQPad 5

Für die folgenden, einführenden Beispiele in Visual Basic 2015 nutzen wir LINQPad 5, wo wir deutlich einfacher experimentieren können als in Visual Studio, wo wir zumindest eine Konsolenanwendung brauchen, die wir immer wieder ausführen müssen.

Den Download von LINQPad 5 finden Sie unter der Internetadresse www.linqpad.net.

Nach der Installation und dem Start von LINQPad 5 finden Sie im Hauptbereich ein Kombinationsfeld namens Language, mit der Sie die drei folgenden Optionen für Visual Basic einstellen können (siehe Bild 1):

Auswahl der verschiedenen Eingabemöglichkeiten

Bild 1: Auswahl der verschiedenen Eingabemöglichkeiten

  • VB Expression: Testen einfacher Ausdrücke wie etwa DateTime.Now.ToString() durch Eingabe und anschließende Betätigung von F5 (siehe Bild 2)
  • VB-Ausdrucks, dessen Ergebnis dann im Ausgabebereich landet

    Bild 2: VB-Ausdrucks, dessen Ergebnis dann im Ausgabebereich landet

  • VB Statement(s): Führt mehrere Anweisungen aus, also etwa den Inhalt einer Methode – nur eben ohne die übliche Public Sub .../End Sub-Zeilen (siehe Bild 3). Dazu ist wiederum das Betätigen der Taste F5 beziehungsweise der Starten-Schaltfläche nötig.
  • Eingabe einiger Anweisungen, die nacheinander ausgeführt werden.

    Bild 3: Eingabe einiger Anweisungen, die nacheinander ausgeführt werden.

  • VB Program: Hier können Sie komplette Methoden, Klassen und so weiter einbinden. Eine neue Registerseite dieses Typs blendet die Methode Sub Main ein, die beim Ausführen mit F5 gestartet wird. Darunter können Sie beliebige weitere Elemente einbinden (siehe Bild 4). Mehr dazu in den folgenden Beispielen!
  • Ausführen der Methode einer Klasse

    Bild 4: Ausführen der Methode einer Klasse

Namespaces hinzufügen

Unter C# fügen Sie zusätzliche Namespaces mit der using-Anweisung hinzu. Visual Basic nutzt stattdessen die Imports-Anweisung:

In LINQPad 5 können Sie diese Zeile in der aktuellen Version noch nicht nutzen. Dazu verwenden Sie einen kleinen Umweg:

  • Klicken Sie mit der rechten Maustaste auf den Tab-Reiter und wählen Sie den Kontextmenü-Eintrag Query Properties... aus.
  • Klicken Sie auf der Registerseite Additional References auf Add... und wählen Sie die hinzuzufügende Bibliothek aus, zum Beispiel System.Windows.Forms.dll (siehe Bild 5).
  • Hinzufügen von Bibliotheken

    Bild 5: Hinzufügen von Bibliotheken

  • Um dann den Namespace für den Code in LINQPad 5 nutzen zu können, wechseln Sie auf die Seite Additional Namespace Imports. Klicken Sie hier rechts oben auf den Link Pick from assemblies. Dadurch wird ein weiterer Bereich eingeblendet, aus dem Sie die zu nutzenden Namespaces auswählen und mit der Schaltfläche Add Selected Namespace zur aktuellen Seite hinzufügen können (siehe Bild 6). Damit können Sie nun beispielsweise die MessageBox-Klasse nutzen.
  • Hinzufügen von Namespaces

    Bild 6: Hinzufügen von Namespaces

Namespaces im Code definieren

Um einen Namespace im Code zu definieren, verwenden Sie genau dieselbe Anweisung wie unter C#:

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Ich habe die Datenschutzbestimmungen zur Kenntnis genommen.