Bagikan melalui


Properti yang Diimplementasikan Secara Otomatis (Visual Basic)

Properti yang diterapkan secara otomatis memungkinkan Anda menentukan properti kelas dengan cepat tanpa harus menulis kode untuk Get dan Set properti. Saat Anda menulis kode untuk properti yang diimplementasikan secara otomatis, pengompilasi Visual Basic secara otomatis membuat bidang privat untuk menyimpan variabel properti selain membuat prosedur Get dan Set terkait.

Dengan properti yang diimplementasikan secara otomatis, properti, termasuk nilai default, dapat dideklarasikan dalam satu baris. Contoh berikut menunjukkan tiga deklarasi properti.

Public Property Name As String
Public Property Owner As String = "DefaultName"
Public Property Items As New List(Of String) From {"M", "T", "W"}
Public Property ID As New Guid()

Properti yang diimplementasikan secara otomatis setara dengan properti yang nilai propertinya disimpan di bidang privat. Contoh kode berikut menunjukkan properti yang diimplementasikan secara otomatis.

Property Prop2 As String = "Empty"

Contoh kode berikut menunjukkan kode yang setara untuk contoh properti yang diterapkan secara otomatis sebelumnya.

Private _Prop2 As String = "Empty"
Property Prop2 As String
    Get
        Return _Prop2
    End Get
    Set(ByVal value As String)
        _Prop2 = value
    End Set
End Property

Kode berikut menunjukkan penerapan properti bacasaja:

Class Customer  
   Public ReadOnly Property Tags As New List(Of String)  
   Public ReadOnly Property Name As String = ""  
   Public ReadOnly Property File As String  
  
   Sub New(file As String)  
      Me.File = file  
   End Sub  
End Class  

Anda dapat menetapkan ke properti dengan ekspresi inisialisasi seperti yang ditunjukkan dalam contoh, atau Anda dapat menetapkan ke properti di konstruktor jenis yang berisi. Anda dapat menetapkan ke bidang pendukung properti bacasaja kapan saja.

Bidang Pendukung

Saat Anda mendeklarasikan properti yang diimplementasikan secara otomatis, Visual Basic secara otomatis membuat bidang privat tersembunyi yang disebut bidang pendukung untuk memuat nilai properti. Nama bidang pendukung adalah nama properti yang diimplementasikan secara otomatis yang didahului oleh garis bawah (_). Misalnya, jika Anda mendeklarasikan properti yang diimplementasikan secara otomatis bernama ID, bidang pendukung diberi nama _ID. Jika Anda menyertakan anggota kelas Anda yang juga bernama _ID, Anda menghasilkan konflik penamaan dan Visual Basic melaporkan kesalahan pengompilasi.

Bidang pendukung juga memiliki karakteristik berikut:

  • Pengubah akses untuk bidang pendukung selalu Private, bahkan ketika properti itu sendiri memiliki tingkat akses yang berbeda, seperti Public.

  • Jika properti ditandai sebagai Shared, bidang pendukung juga dibagikan.

  • Atribut yang ditentukan untuk properti tidak berlaku untuk bidang pendukung.

  • Bidang pendukung dapat diakses dari kode dalam kelas dan dari alat penelusuran kesalahan seperti jendela Watch. Namun, bidang pendukung tidak ditampilkan dalam daftar penyelesaian kata IntelliSense.

Menginisialisasi Properti yang Diimplementasikan Secara Otomatis

Ekspresi apa pun yang dapat digunakan untuk menginisialisasi bidang valid untuk menginisialisasi properti yang diimplementasikan secara otomatis. Saat Anda menginisialisasi properti yang diimplementasikan secara otomatis, ekspresi dievaluasi dan diteruskan ke prosedur Set untuk properti tersebut. Contoh kode berikut menunjukkan beberapa properti yang diterapkan secara otomatis yang menyertakan nilai awal.

Property FirstName As String = "James"
Property PartNo As Integer = 44302
Property Orders As New List(Of Order)(500)

Anda tidak dapat menginisialisasi properti yang diimplementasikan secara otomatis yang merupakan anggota Interface, atau properti yang ditandai MustOverride.

Ketika Anda mendeklarasikan properti yang diimplementasikan secara otomatis sebagai anggota Structure, Anda hanya dapat menginisialisasi properti yang diterapkan secara otomatis jika ditandai sebagai Shared.

Saat Anda mendeklarasikan properti yang diimplementasikan secara otomatis sebagai array, Anda tidak dapat menentukan batas array eksplisit. Namun, Anda dapat menyediakan nilai dengan menggunakan penginisialisasi array, seperti yang ditunjukkan dalam contoh berikut.

Property Grades As Integer() = {90, 73}
Property Temperatures As Integer() = New Integer() {68, 54, 71}

Penentuan Properti yang Memerlukan Sintaks Standar

Properti yang diterapkan secara otomatis nyaman dan mendukung banyak skenario pemrograman. Namun, ada situasi di mana Anda tidak dapat menggunakan properti yang diterapkan secara otomatis dan sebaliknya harus menggunakan sintaks properti standar, atau diperluas.

Anda harus menggunakan sintaks penentuan properti yang diperluas jika Anda ingin melakukan salah satu hal berikut ini:

  • Tambahkan kode ke prosedur Get atau Set properti, seperti kode untuk memvalidasi nilai masuk dalam prosedur Set. Misalnya, Anda mungkin ingin memverifikasi bahwa string yang mewakili nomor telepon berisi jumlah angka yang diperlukan sebelum mengatur nilai properti.

  • Tentukan aksesibilitas yang berbeda untuk prosedur Get dan Set. Misalnya, Anda mungkin ingin membuat prosedur SetPrivate dan prosedur GetPublic.

  • Buat properti yang merupakan WriteOnly.

  • Gunakan properti berparameter (termasuk properti Default). Anda harus mendeklarasikan properti yang diperluas untuk menentukan parameter untuk properti, atau untuk menentukan parameter tambahan untuk prosedur Set tersebut.

  • Tempatkan atribut pada bidang pendukung, atau ubah tingkat akses bidang pendukung.

  • Berikan komentar XML untuk bidang pendukung.

Memperluas Properti yang Diimplementasikan Secara Otomatis

Jika Anda harus mengonversi properti yang diimplementasikan secara otomatis ke properti yang diperluas yang berisi prosedur Get atau Set, Editor Kode Visual Basic dapat secara otomatis menghasilkan prosedur Get dan Set dan pernyataan End Property untuk properti tersebut. Kode dihasilkan jika Anda meletakkan kursor pada baris kosong setelah pernyataan Property, ketik G (untuk Get) atau S (untuk Set) dan tekan ENTER. Editor Kode Visual Basic secara otomatis menghasilkan prosedur Get atau Set untuk properti baca-saja dan tulis-saja saat Anda menekan ENTER di akhir pernyataan Property.

Lihat juga