Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir değişkeni gölgeleyerek , yani aynı adlı bir değişkenle yeniden tanımlayarak gizleyebilirsiniz. Gizlemek istediğiniz değişkeni iki şekilde gölgeleyebilirsiniz:
Kapsam Üzerinden Gölgeleme. Kapsamı gölgelemek için gizlemek istediğiniz değişkeni içeren bölgenin bir alt bölgesi içinde yeniden tanımlayabilirsiniz.
Miras yoluyla gölgeleme. Gizlemek istediğiniz değişken sınıf düzeyinde tanımlanmışsa, türetilmiş bir sınıfta Shadows anahtar sözcüğünü kullanarak onu miras yoluyla yeniden deklarasyon yaparak gölgeleyebilirsiniz.
Değişkeni Gizlemenin İki Yolu
Bir değişkeni, kapsam kullanarak gölgelendirip gizlemek için
Gizlemek istediğiniz değişkeni tanımlayan bölgeyi belirleyin ve değişkeninizle yeniden tanımlayabileceğiniz bir alt bölge belirleyin.
Değişkenin bölgesi Yeniden tanımlama için izin verilebilen alt bölge Modül Modül içindeki bir sınıf Sınıf Sınıfın içindeki bir alt sınıf
Sınıf içindeki bir prosedürBir prosedür içindeki bir blokta prosedür değişkenini yeniden tanımlayamazsınız, örneğin bir
If...End Ifyapısında veya birFordöngüsünde.Henüz yoksa alt bölge oluşturun.
Alt bölge içinde, gölgeleme değişkenini belirten bir Dim Deyimi yazın.
Alt bölge içindeki kod değişken adına başvurduğunda, derleyici gölgeleme değişkenine başvuruyu çözümler.
Aşağıdaki örnekte kapsam boyunca gölgelendirmenin yanı sıra gölgelendirmeyi atlayan bir başvuru gösterilmektedir.
Module shadowByScope ' The following statement declares num as a module-level variable. Public num As Integer Sub show() ' The following statement declares num as a local variable. Dim num As Integer ' The following statement sets the value of the local variable. num = 2 ' The following statement displays the module-level variable. MsgBox(CStr(shadowByScope.num)) End Sub Sub useModuleLevelNum() ' The following statement sets the value of the module-level variable. num = 1 show() End Sub End ModuleYukarıdaki örnekte değişken
numhem modül düzeyinde hem de yordam düzeyinde (yordamdashow) bildirilmektedir. Yerel değişkennumiçindekinummodül düzeyi değişkenishowgölgeler, bu nedenle yerel değişken 2 olarak ayarlanır. Ancak, yordamdanum'u gölgelemek için yerel bir değişken yoktur. Bu nedenle modüluseModuleLevelNumdüzeyi değişkeninin değerini 1 olarak ayarlar.Çağrı
MsgBoxiçindeshow, modül adı belirtilereknumgölgeleme mekanizmasını atlar. Bu nedenle, yerel değişken yerine modül düzeyi değişkenini görüntüler.
Devralma yoluyla gölgelendirme yaparak bir değişkeni gizlemek için
Gizlemek istediğiniz değişkenin bir sınıfta ve sınıf düzeyinde (herhangi bir yordamın dışında) bildirildiğinden emin olun. Aksi takdirde kalıtım yoluyla üstünü örtemezsiniz.
Henüz yoksa değişkenin sınıfından türetilmiş bir sınıf tanımlayın.
Türetilmiş sınıfın içinde değişkeninizi belirten bir
Dimdeyim yazın. Bildirime Shadows anahtar sözcüğünü ekleyin.Türetilmiş sınıftaki kod değişken adına başvurduğunda, derleyici değişkeninize 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 ClassYukarıdaki örnek, temel sınıfta değişkeni
shadowStringbildirir ve türetilmiş sınıfta bunu gölgeler. Türetilmiş sınıftaki yordamshowStrings, adshadowStringnitelendirilmediğinde dizenin gölgeleme sürümünü görüntüler. Ardından,shadowStringöğesiMyBaseanahtar sözcüğüyle nitelendiğinde gölgeli sürümünü görüntüler.
Sağlam Programlama
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, gölgeli değişkenin istenmeyen bir sürümüne başvurma riskini artırabilir. Gölgeli bir değişkene yapılan tüm başvuruları tam olarak niteleyerek bu riski düşürebilirsiniz.