Поделиться через


MyClass

Обновлен: Ноябрь 2007

Предоставляет способ обращения к членам текущего экземпляра класса без их замены на любой переопределяющий производный класс.

Заметки

Ключевое слово MyClass действует как переменная объекта, которая ссылается на текущий экземпляр класса, как изначально реализованная. MyClass аналогично Me, но каждый метод и свойство, вызываемые в MyClass, рассматриваются, как если бы метод или свойство были NotOverridable. Следовательно, на метод или свойство не оказывает никакого влияния его переопределение в производном классе. В следующем примере сравниваются Me и 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

Несмотря на то, что derivedClass переопределяет testMethod, ключевое слово MyClass в useMyClass сводит к нулю влияние переопределения и компилятор разрешает вызов базового класса версии testMethod.

Нельзя использовать MyClass внутри метода Shared (Visual Basic), но можно использовать внутри метода экземпляра для доступа к общему члену класса.

См. также

Основные понятия

Основы наследования

Ссылки

Me

MyBase