C# und VB.Net gemeinsam nutzen
Zugriff auf MS Office oder VB
In VB und VBA in Microsoft Office existieren optionale Parameter, das heißt Methoden können Werte erhalten oder nicht. Da weder VBA noch VB „echt“ objektorientiert sind, besitzen sie keine überladenen Methoden. Das bedeutet beispielsweise, dass Sie in VBA statt
Set wdDokNeu = Documents.Add(Template:="", NewTemplate:=False, DocumentType:= wdNewBlankDocument, Visible:=True)
schreiben können
Set wdDokNeu = Documents.Add
In VB.Net können Sie mit wdDokNeu = wdApp.Documents.Add()
arbeiten, in C# müssen Sie auf die Konstante System.Missing zurückgreifen:
objMiss = System.Missing
wdDokNeu = wdApp.Documents.Add(objMiss, objMiss, objMiss, objMiss)
was bei vielen Codezeilen schnell zu Fehlern führen kann.
Klassen
Klassen unterschieden sich in den beiden Sprachen nicht: Beide verfügen über Konstruktoren, Methoden, Eigenschaften, überladene Methoden und Eigenschaften (und seit 2.0 auch Operatoren), Polymorphie sowie versiegelte, verschachtelte und abstrakte Klassen. Jedoch gibt es einen interessanten Aspekt der Unterscheidung:
Da der Konstruktor in VB.Net mit dem Schlüsselwort New
erzeugt wird, ist er unabhängig vom Namen der Klasse. Beim Umbenennen der Klasse entstehen keine Probleme. In C# dagegen trägt der Konstruktor den gleichen Namen wie die Klasse. Beim Ändern des Klassennamens muss also auch der Name des Konstruktors geändert werden.