MyClass
업데이트: 2007년 11월
현재 클래스 인스턴스 멤버를 파생 클래스에서 재정의하지 않고 참조할 수 있는 방법을 제공합니다.
설명
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를 재정의하더라도 useMyClass의 MyClass 키워드가 재정의한 결과를 취소하고 컴파일러는 이 호출을 testMethod의 기본 클래스 버전으로 연결합니다.
Shared(Visual Basic) 메서드 내에서는 MyClass를 사용할 수 없지만 인스턴스 메서드 내에서 사용하여 클래스의 공유 멤버에 액세스할 수 있습니다.