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.
Properti yang diterapkan secara otomatis memungkinkan Anda menentukan properti kelas dengan cepat tanpa harus menulis kode ke Get dan Set properti . Saat Anda menulis kode untuk properti yang diimplementasikan secara otomatis, pengkompilasi Visual Basic secara otomatis membuat bidang privat untuk menyimpan variabel properti selain membuat prosedur dan Get terkaitSet.
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 diimplementasikan 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 backing untuk berisi nilai properti. Nama bidang backing adalah nama properti yang diimplementasikan secara otomatis yang didahului oleh garis bawah (_). Misalnya, jika Anda mendeklarasikan properti yang diimplementasikan secara otomatis bernama ID, bidang backing 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 Set prosedur untuk properti . Contoh kode berikut menunjukkan beberapa properti yang diimplementasikan 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 diimplementasikan 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 diimplementasikan 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
GetatauSetproperti, 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
GetdanSet. Misalnya, Anda mungkin ingin membuat prosedurSetPrivatedan prosedurGetPublic.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 prosedurSettersebut.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 Get prosedur atau Set , Visual Basic Code Editor dapat secara otomatis menghasilkan Get prosedur dan pernyataan dan SetEnd 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.