Nasıl yapılır: Değişkeninizle Aynı Adı Taşıyan Bir Değişkeni Gizleme (Visual Basic)
Bir değişkenin gizleyebilirsiniz gölgeleme onu, başka bir deyişle, aynı ada sahip bir değişken tanımlayarak tarafından.İki yolla gizlemek istediğiniz değişkeni gölge:
Kapsam gölgelendirme. Bu kapsamı ile geçerli bir alt bir bölgesi, gizlemek istediğiniz değişkeni içeren bölge içinde redeclaring gölge.
Devralma yoluyla gölgelendirme. Sınıf düzeyinde gizlemek istediğiniz değişkeni tanımlıysa, siz onu devralma yoluyla kendisiyle redeclaring gölge Shadows (Visual Basic) anahtar sözcüğünü türetilmiþ bir sýnýf içinde.
Bir değişken gizlemek için iki yol
Bir değişkenin kapsamı ile gölgeleme gizlemek için
Gizlemek istediğiniz değişken tanımlama bölgesini belirleyin ve bir değişkeniniz ile yeniden tanımlamak, geçerli bir alt bölgesi belirler.
Değişken bölge
Geçerli bir alt onu yeniden tanımlama için izin verilen bölgesi
Modül
Sınıf modülü içinde
Sınıf
Sınıf içinde bir alt sınıfı
Bir yordamda sınıfı
Bu yordamı içinde bir blok içinde bir yordam değişken Örneğin, tanımlanamaz bir If...End If yapım veya bir For döngü.
Zaten yoksa, geçerli bir alt bölgesi oluşturun.
Geçerli bir alt bölgesi içinde yaz bir Dim Deyimi (Visual Basic) gölgeleme değişkeni bildirmek.
Değişken adı için geçerli bir alt bölgesi içinde kod başvurduğu zaman, derleyici gölgelendirme değişken için başvuru giderir.
Kapsam olarak gölgeleme atlar bir başvuru gölgeleme aşağıdaki örnekte 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 Module
Yukarıdaki örnek değişkeni bildirir num modül düzeyinde ve yordam düzeyinde (yordamda show).Yerel değişken num modül düzeyi değişkeni gölgeleri num içinde show, yerel değişken 2'ye ayarlanır.Ancak, gölge yok yerel bir değişkene var. num , useModuleLevelNum yordam.Bu nedenle, useModuleLevelNum modül düzeyi değişkeni değerini 1'e ayarlar.
MsgBox İçinde arama show gölgeleme mekanizması olarak nitelemek atlar num Modül adı ile.Bu nedenle, yerel değişken yerine modül düzeyi değişkeni görüntüler.
Devralma yoluyla gölgelendirme değişken gizlemek için
Gizlemek istediğiniz değişken, bir sınıf ve sınıf düzeyinde (dışında herhangi bir yordam) bildirildiğinden emin olun.Aksi halde, devralma yoluyla gölgeleyemez.
Biri zaten yoksa, değişkenin sınıfından türetilmiş bir sınıf tanımlayın.
Türetilmiş bir sınıf içinde yazmak bir Dim deyimi değişkeniniz bildirmek.Dahil Shadows (Visual Basic) bildiriminde anahtar sözcüğü.
Türetilmiş bir sınıf kodu için değişken adını başvurduğunda, derleyici sizin değişkenin başvurusu giderir.
Devralma yoluyla gölgeleme aşağıdaki örnekte gösterilmektedir.İki başvuru, bir gölgelendirme değişken erişir ve gölgeleme atlar bir hale getirir.
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 değişkeni bildirir shadowString temel sınıf ve türetilmiş bir sınıf içerisinde gölgeliyor.Yordam showStrings türetilmiş bir sınıf içerisinde gölgeleme sürümü dizesini görüntüler, ad shadowString değil tam.Gölgeli sürüm sonra görüntüler, shadowString ile yetkin olduğunu MyBaseanahtar sözcüğü.
Güçlü Programlama
Gölgelendirme değişken aynı ada sahip birden fazla sürümü kullanıma sunmuştur.Değişken adı için bir kod ifadesi başvurduğu zaman, derleyici başvuru açığını giderir sürüm kod deyiminin konumunu ve uygun bir dize varlığını gibi etkenlere bağlıdır.Bu gölgeli bir değişkenin istenmeyen bir sürümüne başvuran riskini artırabilir.Gölgeli bir değişkene yapılan tüm başvurular tam olarak nitelemek tarafından bu riski azaltabilirsiniz.
Ayrıca bkz.
Görevler
Nasıl yapılır: Devralınmış Değişkeni Gizleme (Visual Basic)
Nasıl yapılır: Türetilmiş Sınıf Tarafından Gizlenen Bir Değişkene Erişme (Visual Basic)
Başvuru
Geçersiz Kılmalar (Visual Basic)
Kavramlar
Bildirilmiş Öğelere Başvurular (Visual Basic)
Gölgeleme ve Geçersiz Kılma Arasındaki Farklar (Visual Basic)