Nasıl yapılır: Türetilmiş Sınıf Tarafından Gizlenen Bir Değişkene Erişme (Visual Basic)
Türetilmiş bir sınıftaki kod bir değişkene eriştiğinde, derleyici normalde en yakın erişilebilir sürüme, yani erişilen sınıftan geriye doğru en az türetilmiş adım olan erişilebilir sürüme başvuruyu çözümler. Değişken türetilmiş sınıfta tanımlanmışsa kod normalde bu tanıma erişir.
Türetilmiş sınıf değişkeni temel sınıftaki bir değişkeni gölgelerse, temel sınıf sürümünü gizler. Ancak temel sınıf değişkenine anahtar sözcüğüyle MyBase
niteleyerek erişebilirsiniz.
Türetilmiş bir sınıf tarafından gizlenen bir temel sınıf değişkenine erişmek için
İfadede veya atama deyiminde, değişken adının
MyBase
önüne anahtar sözcük ve nokta (.
) yazın.Derleyici, değişkenin temel sınıf sürümüne başvuruyu çözümler.
Aşağıdaki örnek, devralma yoluyla gölgelendirmeyi gösterir. Biri gölgelendirme değişkenine erişen ve diğeri gölgelendirmeyi atlayan iki başvuru yapar.
Public Class shadowBaseClass Public shadowString As String = "This is the base class string." End Class Public Class shadowDerivedClass Inherits shadowBaseClass Public Shadows shadowString As String = "This is the derived class string." Public Sub showStrings() Dim s As String = "Unqualified shadowString: " & shadowString & vbCrLf & "MyBase.shadowString: " & MyBase.shadowString MsgBox(s) End Sub End Class
Yukarıdaki örnek, temel sınıfta değişkeni
shadowString
bildirir ve türetilmiş sınıfta bunu gölgeler. Türetilmiş sınıftaki yordamshowStrings
, adshadowString
nitelenmediğinde dizenin gölgeli sürümünü görüntüler. Ardından anahtar sözcükleMyBase
nitelendiğindeshadowString
gölgeli sürümü görüntüler.
Güçlü Programlama
Gölgeli değişkenin istenmeyen bir sürümüne başvurma riskini azaltmak için, gölgeli bir değişkene yapılan tüm başvuruları tam olarak niteleyebilirsiniz. Gölgeleme, bir değişkenin aynı ada sahip birden fazla sürümünü tanıtır. Bir kod deyimi değişken adına başvurduğunda, derleyicinin başvuruyu çözümlediği sürüm, kod deyiminin konumu ve uygun bir dizenin varlığı gibi faktörlere bağlıdır. Bu, değişkenin yanlış sürümüne başvurma riskini artırabilir.