MyClass
Aktualisiert: November 2007
Bietet eine Möglichkeit, auf die aktuellen Klasseninstanzmember zu verweisen, ohne dass diese durch eventuell vorhandene Überschreibungen in abgeleiteten Klassen ersetzt werden.
Hinweise
Das MyClass-Schlüsselwort verhält sich wie eine Objektvariable, die auf die aktuelle Klasseninstanz gemäß ihrer ursprünglichen Implementierung verweist. MyClass hat Gemeinsamkeiten mit Me; allerdings wird jeder Aufruf einer Methode oder Eigenschaft unter Verwendung von MyClass so behandelt, als wäre die Methode oder Eigenschaft als NotOverridable deklariert. Daher wird die Methode oder Eigenschaft nicht durch das Überschreiben in einer abgeleiteten Klasse beeinflusst. Im folgenden Beispiel werden das Me-Schlüsselwort und das MyClass-Schlüsselwort miteinander verglichen.
Class baseClass
Public Overridable Sub testMethod()
MsgBox("Base class string")
End Sub
Public Sub useMe()
' The following call uses the calling class's version, even if
' that version is an override.
Me.testMethod()
End Sub
Public Sub useMyClass()
' The following call uses this version and not any override.
MyClass.testMethod()
End Sub
End Class
Class derivedClass : Inherits baseClass
Public Overrides Sub testMethod()
MsgBox("Derived class string")
End Sub
End Class
Class testClasses
Sub startHere()
Dim testObj As derivedClass = New derivedClass()
' The following call displays "Derived class string".
testObj.useMe()
' The following call displays "Base class string".
testObj.useMyClass()
End Sub
End Class
Obwohl testMethod durch derivedClass überschrieben wird, hebt das MyClass-Schlüsselwort in useMyClass diese Wirkung auf. Der Compiler löst daraufhin den Aufruf an die Basisklassenversion von testMethod auf.
Das MyClass-Schlüsselwort kann nicht innerhalb einer Shared (Visual Basic)-Methode verwendet werden. Es kann aber innerhalb einer Instanzenmethode eingesetzt werden, um auf einen freigegebenen Member einer Klasse zuzugreifen.