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, sepertiPublic
.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
atauSet
properti, seperti kode untuk memvalidasi nilai masuk dalam prosedurSet
. 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
danSet
. Misalnya, Anda mungkin ingin membuat prosedurSet
Private
dan prosedurGet
Public
.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 prosedurSet
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk