Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ketika kode di kelas turunan mengakses variabel, pengkompilasi biasanya menyelesaikan referensi ke versi terdekat yang dapat diakses, yaitu, versi yang dapat diakses langkah-langkah turunan terkecil dari kelas yang mengakses. Jika variabel didefinisikan dalam kelas turunan, kode biasanya mengakses definisi tersebut.
Jika variabel kelas turunan membayangi variabel di kelas dasar, variabel tersebut menyembunyikan versi kelas dasar. Namun, Anda dapat mengakses variabel kelas dasar dengan memenuhi syarat dengan MyBase kata kunci.
Untuk mengakses variabel kelas dasar yang disembunyikan oleh kelas turunan
Dalam pernyataan ekspresi atau penugasan, dahului nama variabel dengan kata kunci
MyBasedan titik (.).Pengkompilasi menyelesaikan referensi ke versi kelas dasar variabel.
Contoh berikut mengilustrasikan bayangan melalui pewarisan. Ini membuat dua referensi, satu yang mengakses variabel bayangan dan satu yang melewati bayangan.
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 ClassContoh sebelumnya mendeklarasikan variabel
shadowStringdi kelas dasar dan membayanginya di kelas turunan. ProsedurshowStringsdi kelas turunan menampilkan versi bayangan string ketika namashadowStringtidak memenuhi syarat. Kemudian menampilkan versi bayangan ketikashadowStringmemenuhi syarat denganMyBasekata kunci.
Pemrograman yang Kuat
Untuk menurunkan risiko merujuk ke versi variabel bayangan yang tidak diinginkan, Anda dapat sepenuhnya memenuhi syarat semua referensi ke variabel bayangan. Shadowing memperkenalkan lebih dari satu versi variabel dengan nama yang sama. Ketika pernyataan kode mengacu pada nama variabel, versi tempat pengkompilasi menyelesaikan referensi tergantung pada faktor-faktor seperti lokasi pernyataan kode dan keberadaan string yang memenuhi syarat. Ini dapat meningkatkan risiko merujuk ke versi variabel yang salah.