Compartir a través de


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.

Vea también

Conceptos

Fundamentos de la herencia

Referencia

Me

MyBase