Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Wer mit VBA programmiert, nutzt eigentlich schon eine Reihe der Elemente der objektorientierten Programmierung – zum Beispiel, wenn er Objekte auf Basis der Klasse Database oder Recordset erstellt und dann mit deren Methoden und Eigenschaften durch die Daten einer Tabelle navigiert. Auch benutzerdefinierte Klassen lassen sich mit VBA erstellen. Unter C# erhalten Sie jedoch Zugriff auf den kompletten Umfang der objektorientierten Programmierung. Dieser Artikel liefert einen Einstieg in die objektorientierte Programmierung mit C#.
Prozeduren starten ade
Eines müssen wir direkt klarstellen: Einfach mal eben wie im VBA-Editor eine Prozedur in einem Standardmodul programmieren und diese mit F5 ausführen – das gelingt in Visual Studio unter C# nicht. Dort müssen Sie etwa in einer Konsolenanwendung zumindest die standardmäßig vorhandene Klasse verwenden, die dort enthaltene Prozedur Main mit den gewünschten Codezeilen füllen und auf F5 drücken.
Die Klasse Program
Wenn Sie ein neues Projekt auf Basis der Vorlage Konsolenanwendung erstellen, erhalten Sie eine Datei mit einer Klasse namens Program mit einer Methode namens Main, die standardmäßig beim Start der Anwendung ausgeführt wird.
Von der Methode Main aus werden wir gleich starten, um unsere erste selbst erstellte Klasse zu instanzieren und zu nutzen.
Eine Klasse pro Datei
Jede Klasse sollte in einer eigenen Datei erstellt werden, um die Übersicht zu gewährleisten. Sollten Sie mehrere Klassen in einer Datei anlegen, finden Sie solche Klassen, deren Name sich von dem der Datei unterscheidet, nicht mehr so schnell über den Projektmappen-Explorer wieder.
Neue Klasse erstellen
Dementsprechend beginnen wir nun, indem wir eine neue Klasse erstellen. Dies erledigen wir über den Menüeintrag Projekt|Klasse hinzufügen… Dies öffnet den Dialog Neues Element hinzufügen und stellt die Vorlage direkt auf den Eintrag Klasse ein. Wir nennen die Klasse Konto und klicken dann auf Hinzufügen (siehe Bild 1). Alternativ öffnen Sie den Dialog Neues Element mit dem Kontextmenü-Eintrag Hinzufügen|Klasse… des Eintrags für das Projekt im Projektmappen-Explorer.
Bild 1: Hinzufügen einer neuen Klasse
Die neue Klasse erscheint nun sowohl im Projektmappen-Explorer als auch mit dem vollständigen Quellcode im Code-Fenster (siehe Bild 2). Abgesehen von den using-Anweisungen, dem namespace– und dem class-Element ist die Klasse noch jungfräulich:
Bild 2: Die neue, noch unberührte Klasse Konto
namespace OOProgrammierung { class Konto { } }
Benennung
Der Klassenname sollte möglichst genau beschreiben, welchem Objekt der Realität die Klasse entspricht – sofern dies gegeben ist. Soll die Klasse eine Person aufnehmen, heißt sie Person, soll sie wie in unserem Fall ein Konto aufnehmen, lautet der Klassenname Konto.
Wir verwenden kein Präfix, außerdem beginnt der Klassenname mit einem Großbuchstaben. Besteht der Klassenname aus mehreren zusammengesetzten Wörtern, sollten auch die folgenden Wörter jeweils wieder groß geschrieben werden.
Wenn Sie den Namen der Datei mit der Klasse später noch einmal ändern möchten, erledigen Sie da am besten über den Projektmappen-Explorer. Visual Studio ändert dann optional alle Verweise auf diese Klasse. Wenn Sie den Dateinamen Konto in Bankkonto ändern, benennt Visual Studio auch automatisch die Klasse im Code um.
Objekt instanzieren
Die Klasse ist zwar noch leer (sie hat noch keine Methoden, Eigenschaften et cetera), aber wir können diese dennoch bereits deklarieren und auch instanzieren. Dazu wechseln Sie nun zur Klasse Program. Dort erweitern Sie die Methode Main um zwei Zeilen:
static void Main(string[] args) { Konto konto; konto = new Konto(); }
Die erste Zeile deklariert ein neues Objekt namens konto mit dem Typ Konto (man beachte die Groß-/Kleinschreibung). Beides können Sie auch in einer einzigen Anweisung erledigen:
Konto konto = new Konto();
Die Deklaration reserviert den Speicher für das Objekt, die new-Anweisung erstellt das Objekt nach dem in der Klasse definierten Bauplan. Mit dem Objekt können wir nun noch nicht viel anfangen, da wir noch keine Methoden oder Eigenschaften hinzugefügt haben.
Sie können auch mehrere Objekte auf Basis der gleichen Klasse erstellen:
Konto konto1 = new Konto(); Konto konto2 = new Konto();
Sichtbarkeit der Klasse
Wenn Sie mit Access gearbeitet haben, kennen Sie die Klassenbibliotheken, die Sie üblicherweise per Verweis in ein VBA-Projekt eingebunden haben. Diese haben dann, sowohl über den Objektkatalog einsehbare als auch im Code referenzierbare Klassen bereitgestellt. Wenn Sie eine Klasse in einem C#-Projekt erstellen, um von anderen Anwendung darauf zuzugreifen, müssen Sie die Deklaration dieser Klasse mit dem Schlüsselwort public versehen: