Bagikan melalui


Cara: Mengakses Variabel yang Disembunyikan oleh Kelas Turunan (Visual Basic)

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 MyBase dan 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 Class
    

    Contoh sebelumnya mendeklarasikan variabel shadowString di kelas dasar dan membayanginya di kelas turunan. Prosedur showStrings di kelas turunan menampilkan versi bayangan string ketika nama shadowString tidak memenuhi syarat. Kemudian menampilkan versi bayangan ketika shadowString memenuhi syarat dengan MyBase kata 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.

Lihat juga