MyClass
Actualización: noviembre 2007
Proporciona una manera de hacer referencia a los miembros de la instancia de clase actual sin que se reemplacen con clases derivadas.
Comentarios
La palabra clave MyClass actúa como una variable de objeto que hace referencia a la instancia actual de una clase tal como se implementó originalmente. MyClass es similar a Me, pero cada llamada a un método y propiedad de MyClass se trata como si el método o propiedad fuesen NotOverridable. Por lo tanto, el método o propiedad no se ve afectado por el reemplazo de una clase derivada. En el siguiente ejemplo se comparan Me y MyClass.
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
Aunque derivedClass reemplaza a testMethod, la palabra clave MyClass en useMyClass anula el efecto del reemplazo y el compilador resuelve la llamada a la versión de la clase base de testMethod.
MyClass no se puede utilizar dentro de un método Shared (Visual Basic), pero puede utilizarse en un método de instancia para obtener acceso a un miembro compartido de una clase.