Bagikan melalui


Pernyataan Properti

Menyatakan nama properti, dan prosedur properti yang digunakan untuk menyimpan dan mengambil nilai properti.

Sintaks

[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

Generator

  • attributelist

    Opsional. Daftar atribut yang berlaku untuk properti atau prosedur Get atau Set. Lihat Daftar Atribut.

  • Default

    Opsional. Menentukan bahwa properti ini adalah properti default untuk kelas atau struktur tempat properti tersebut didefinisikan. Properti default harus menerima parameter dan dapat diatur dan diambil tanpa menentukan nama properti. Jika Anda menyatakan properti sebagai Default, Anda tidak dapat menggunakan Private pada properti atau pada salah satu prosedur propertinya.

  • accessmodifier

    Opsional pada pernyataan Property dan paling banyak salah satu pernyataan Get dan Set. Bisa jadi salah satu dari yang berikut:

    Lihat Tingkat akses di Visual Basic.

  • propertymodifiers

    Opsional. Bisa jadi salah satu dari yang berikut:

  • Shared

    Opsional. Lihat Dibagikan.

  • Shadows

    Opsional. Lihat Bayangan.

  • ReadOnly

    Opsional. Lihat ReadOnly.

  • WriteOnly

    Opsional. Lihat WriteOnly.

  • Iterator

    Opsional. Lihat Iterator.

  • name

    Harus diisi. Nama properti. Lihat Nama Elemen yang Dideklarasikan.

  • parameterlist

    Opsional. Daftar nama variabel lokal yang mewakili parameter properti ini, dan kemungkinan parameter tambahan dari prosedur Set. Lihat Daftar parameter.

  • returntype

    Diperlukan jika Option Strict adalah On. Jenis data dari nilai yang dikembalikan oleh properti ini.

  • Implements

    Opsional. Menunjukkan bahwa properti ini mengimplementasikan satu atau beberapa properti, masing-masing didefinisikan dalam antarmuka yang diimplementasikan oleh kelas atau struktur yang berisi properti ini. Lihat Pernyataan Implements.

  • implementslist

    Diperlukan jika Implements diberikan. Daftar properti yang sedang diimplementasikan.

    implementedproperty [ , implementedproperty ... ]

    Setiap implementedproperty memiliki sintaks dan bagian berikut:

    interface.definedname

    Bagian Deskripsi
    interface Harus diisi. Nama antarmuka yang diimplementasikan oleh kelas atau struktur yang berisi properti ini.
    definedname Harus diisi. Nama tempat properti didefinisikan dalam interface.
  • Get

    Opsional. Diperlukan jika properti ditandai ReadOnly. Memulai prosedur properti Get yang digunakan untuk mengembalikan nilai properti. Pernyataan Get ini tidak digunakan dengan properti yang diimplementasikan secara otomatis.

  • statements

    Opsional. Blok pernyataan untuk dijalankan dalam prosedur Get atau Set.

  • End Get

    Mengakhiri prosedur properti Get.

  • Set

    Opsional. Diperlukan jika properti ditandai WriteOnly. Memulai prosedur properti Set yang digunakan untuk menyimpan nilai properti. Pernyataan Set ini tidak digunakan dengan properti yang diimplementasikan secara otomatis.

  • End Set

    Mengakhiri prosedur properti Set.

  • End Property

    Mengakhiri definisi properti ini.

Keterangan

Pernyataan ini Property memperkenalkan deklarasi properti. Properti dapat memiliki prosedur Get (baca saja), prosedur Set (tulis saja), atau keduanya (baca-tulis). Anda dapat menghilangkan Get prosedur dan Set saat menggunakan properti yang diimplementasikan secara otomatis. Untuk informasi selengkapnya, lihat Properti yang diterapkan secara otomatis.

Anda dapat menggunakan Property hanya di tingkat kelas. Ini berarti konteks deklarasi untuk properti harus berupa kelas, struktur, modul, atau antarmuka, dan tidak boleh berupa file sumber, namespace, prosedur, atau blok. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Default.

Secara default, properti menggunakan akses publik. Anda dapat menyesuaikan tingkat akses properti dengan pengubah akses pada pernyataan Property, dan Anda dapat secara opsional menyesuaikan salah satu prosedur propertinya ke tingkat akses yang lebih ketat.

Visual Basic meneruskan parameter ke prosedur Set selama penetapan properti. Jika Anda tidak menyediakan parameter untuk Set, lingkungan pengembangan terpadu (IDE) menggunakan parameter implisit bernama value. Parameter ini menyimpan nilai yang akan ditetapkan ke properti. Anda biasanya menyimpan nilai ini dalam variabel lokal privat dan mengembalikannya setiap kali prosedur Get dipanggil.

Aturan

  • Tingkat Akses Campuran. Jika Anda menentukan properti baca-tulis, Anda dapat secara opsional menentukan tingkat akses yang berbeda untuk Get atau prosedur Set, tetapi tidak keduanya. Jika Anda melakukan ini, tingkat akses prosedur harus lebih ketat dibandingkan tingkat akses properti. Misalnya, jika properti dinyatakan Friend, Anda dapat mendeklarasikan Set prosedur Private, tetapi tidak Public.

    Jika Anda menentukan properti ReadOnly atau WriteOnly, prosedur properti tunggal (Get atau Set, masing-masing) mewakili semua properti. Anda tidak dapat mendeklarasikan tingkat akses yang berbeda untuk prosedur seperti itu, karena itu akan menetapkan dua tingkat akses untuk properti.

  • Jenis Pengembalian. Pernyataan Property dapat mendeklarasikan jenis data dari nilai yang mengembalikannya. Anda dapat menentukan jenis data apa pun atau nama enumerasi, struktur, kelas, atau antarmuka.

    Jika Anda tidak menentukan returntype, properti akan mengembalikan Object.

  • Implementasi. Jika prosedur ini menggunakan kata kunci Implements, kelas atau struktur yang memuat juga harus memiliki pernyataan Implements yang segera mengikuti pernyataan Class atau Structure. Pernyataan Implements harus menyertakan setiap antarmuka yang ditentukan dalam implementslist. Namun, nama tempat antarmuka mendefinisikan Property (dalam definedname) tidak harus sama dengan nama properti ini (dalam name).

Perilaku

  • Kembali dari Prosedur Properti. Ketika prosedur Get atau Set kembali ke kode panggilan, eksekusi berlanjut dengan pernyataan mengikuti pernyataan yang memanggilnya.

    Pernyataan Exit Property dan Return akan memicu segera keluar dari prosedur properti. Sejumlah pernyataan Exit Property dan Return dapat muncul di mana saja dalam prosedur, dan Anda dapat mencampur pernyataan Exit Property dan Return.

  • Nilai Pengembalian. Untuk mengembalikan nilai dari prosedur Get, Anda dapat menetapkan nilai ke nama properti atau menyertakannya dalam pernyataan Return. Contoh berikut menetapkan nilai pengembalian ke nama fungsi quoteForTheDay, lalu menggunakan pernyataan Exit Property untuk kembali.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            QuoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    Jika Anda menggunakan Exit Property tanpa menetapkan nilai ke name, prosedur Get mengembalikan nilai default untuk jenis data properti.

    Pernyataan Return secara bersamaan menetapkan nilai pengembalian prosedur Get dan keluar dari prosedur. Contoh berikut ini menunjukkan ini.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

Contoh

Contoh berikut mendeklarasikan properti di kelas.

Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property Prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

Lihat juga