Apapun bahasanya klo lagi ngoding di dot NET, biasanya enggak bakalan jauh-jauh dari aktivitas pembuatan kelas.
Kita ambil contoh pembuatan kelas sederhana yang hanya mempunyai 2 property (id dan keterangan), hasil kodenya (Visual Basic .NET) akan terlihat seperti berikut :
12345678910111213141516171819202122232425
Public Class Pekerjaan
Private mPekerjaanID As Short ' deklarasi instance variable
Public Property PekerjaanID() As Short
Get
Return mPekerjaanID ' mengembalikan id pekerjaan
End Get
Set(ByVal value As Short)
mPekerjaanID = value ' mengeset id pekerjaan
End Set
End Property
Private mKeterangan As String ' deklarasi instace variabel
Public Property Keterangan() As String
Get
Return mKeterangan ' mengembalikan nama pekerjaan
End Get
Set(ByVal value As String)
mKeterangan = value ' mengeset nilai pekerjaan
End Set
End Property
End Class
Jadi untuk membuat sebuah property kita hanya membutuhkan instance variabel dan blok property seperti terlihat pada kode diatas, sederhana bukan ? :).
Tapi membuat property kelas akan sedikit menakutkan :D jika yang kita ambil contohnya adalah kelas Mahasiswa, biasanya kelas Mahasiswa mempunyai puluhan property bahkan nyampe ratusan (swear saya pernah melihatnya loh :lol:).
Jadi gimana solusinya ? Klo kita punya waktu luang mungkin bisa coba googling trus mencoba satu per satu plugin property builder yang ada.
Atau solusi yang lain kita buat sendiri, gampang kok :). Untuk desainnya yang sederhana aja seperti gambar berikut :
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Const TEMPLATE_READ_ONLY As String = "Private m<name> As <type>" & vbCrLf & _
"Public ReadOnly Property <name>() As <type>" & vbCrLf & _
" Get" & vbCrLf & _
" Return m<name>" & vbCrLf & _
" End Get" & vbCrLf & _
"End Property" & vbCrLf
Const TEMPLATE_WRITE_ONLY As String = "Private m<name> As <type>" & vbCrLf & _
"Public WriteOnly Property <name>() As <type>" & vbCrLf & _
" Set(ByVal value AS <type>)" & vbCrLf & _
" m<name> = value" & vbCrLf & _
" End Set" & vbCrLf & _
"End Property" & vbCrLf
Const TEMPLATE_BOTH As String = "Private m<name> As <type>" & vbCrLf & _
"Public Property <name>() As <type>" & vbCrLf & _
" Get" & vbCrLf & _
" Return m<name>" & vbCrLf & _
" End Get" & vbCrLf & vbCrLf & _
" Set(ByVal value AS <type>)" & vbCrLf & _
" m<name> = value" & vbCrLf & _
" End Set" & vbCrLf & _
"End Property" & vbCrLf
Dim result As String = String.Empty
If rdoReadOnly.Checked Then
result = TEMPLATE_READ_ONLY
ElseIf rdoWriteOnly.Checked Then
result = TEMPLATE_WRITE_ONLY
Else
result = TEMPLATE_BOTH
End If
result = result.Replace("<name>", txtPropertyName.Text)
result = result.Replace("<type>", Strings.StrConv(txtPropertyType.Text, VbStrConv.ProperCase))
mProperties.Add(result & vbCrLf)
ListBox1.Items.Add(txtPropertyName.Text & " -> " & txtPropertyType.Text)
txtPropertyName.Clear()
txtPropertyName.Focus()
End Sub
Pada kode diatas terlihat variabel mProperties yang saya deklarsikan menggunakan perintah berikut :
1
Private mProperties As New System.Collections.ArrayList
Jadi variabel mProperties bisa digunakan untuk menampung data lebih dari satu (array) dalam hal ini adalah instance variabel + blok property.
Kode berikutnya adalah tombol Copy :
123456789101112131415161718192021
Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
Dim result As String = String.Empty
If mProperties.Count = 0 Then
MessageBox.Show("Belum ada property yang diinputkan !", "Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
For Each itm As String In mProperties
result += itm
Next
Clipboard.Clear()
Clipboard.SetText(result) ' copy ke memory
mProperties.Clear()
txtPropertyType.Clear()
ListBox1.Items.Clear()
MessageBox.Show("Property berhasil di generate, selanjutnya tinggal copas ke editor code Anda", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Intinya kode diatas mengcopy data yang ada di variabel mProperties ke Clipboard.
Setelah itu coba jalankan programnya kemudian coba diinputkan nama Property berikut tipe datanya.
Klik tombol Copy selanjutnya copas ke editor code Anda.
Public Class Mahasiswa
Private mNpm As String
Public Property Npm() As String
Get
Return mNpm
End Get
Set(ByVal value As String)
mNpm = value
End Set
End Property
Private mNama As String
Public Property Nama() As String
Get
Return mNama
End Get
Set(ByVal value As String)
mNama = value
End Set
End Property
Private mTempatLahir As String
Public Property TempatLahir() As String
Get
Return mTempatLahir
End Get
Set(ByVal value As String)
mTempatLahir = value
End Set
End Property
Private mTanggalLahir As Date
Public Property TanggalLahir() As Date
Get
Return mTanggalLahir
End Get
Set(ByVal value As Date)
mTanggalLahir = value
End Set
End Property
Private mAlamat As String
Public Property Alamat() As String
Get
Return mAlamat
End Get
Set(ByVal value As String)
mAlamat = value
End Set
End Property
End Class