Von VBA zu C#: Das Static-Schlüsselwort

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Was bedeutet eigentlich das Schlüsselwort “static”, mit dem Sie sowohl Typen/Klassen also auch die Elemente einer Klasse wie Methoden oder Eigenschaften kennzeichnen können – und was ist bei der Erstellung und Nutzung von Typen und Elementen mit diesem Schlüsselwort zu beachten Dies schauen wir uns im vorliegenden Artikel an und liefern einige Beispiele, welche die Regeln verdeutlichen.

Statische Klassen unter VBA

Unter VBA waren schon einige Verrenkungen nötig, wenn Sie auf die Methoden oder Eigenschaften einer Klasse zugreifen wollten, ohne diese Klasse selbst zu instanzieren – also beispielsweise so:

Dim objTest As clsTest
Set objTest = New clsTest
objTest.Beispielmethode

Mit ein paar Tricks konnten Sie eine Klasse mit einer zusätzlichen, im VBA-Editor nicht sichtbaren Eigenschaft ausstatten, die es ermöglichte, direkt auf ihre Methoden zuzugreifen. Das sah dann schlicht so aus:

clsTest.Beispielmethode

Der Trick ist, die Klasse per SaveAsText zu exportieren und dann den Wert des Attributs VB_PredeclaredId in einem Texteditor auf True einzustellen:

Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Compare Database
Option Explicit
Public Sub Beispielmethode()
     MsgBox "Beispielmethode"
End Sub

Danach konnten Sie in VBA einfach den Namen der Klasse gefolgt von einem Punkt angeben, um per IntelliSense die Member der Klasse einzublenden (siehe Bild 1). Sie konnten die Klasse aber weiterhin instanzieren und wie eine herkömmliche Klasse per Objektverweis nutzen.

Bild 1: “Statische” Klassen unter VBA

Zum Glück waren die beschriebenen Schritte nur notwending, wenn Sie die gewünschte Funktion tatsächlich im Kontext einer Klasse benötigten – also etwa, um Eigenschaften einzugeben und dann eine oder mehrere Methoden aufzurufen. Für den direkten Aufruf einer Methode (beziehungsweise Prozedur, wie es unter VBA heißt) gibt es ja zum Glück das gute, alte Standardmodul.

Statische Klassen unter C#

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar