Option Explicit Private Sub Form_Load() Dim iNumber As Integer iNumber = 1 MsgBox TampilkanPesan(iNumber) End Sub Function TampilkanPesan(ByVal Pesan As String) As String TampilkanPesan = Pesan End FunctionCoba bedakan dengan yang ini
Fungsinya akan menampilkan error yakni argumen yang tidak sama (cocok/mismatch)
Private Sub Form_Load() Dim iNumber As Integer iNumber = 1 MsgBox TampilkanPesan(iNumber) End Sub Function TampilkanPesan(Pesan As String) As String TampilkanPesan = Pesan End FunctionUntuk mengatasi error di atas maka cocokan saja argumennya yakni
dengan mengubah variable iNumber yang asalnya integer menjadi String
Private Sub Form_Load() Dim iNumber As String iNumber = 1 'sekarang tidak akan terjadi error karena type datanya sama yakni string MsgBox TampilkanPesan(iNumber) End Sub Function TampilkanPesan(Pesan As String) As String TampilkanPesan = Pesan End FunctionAtau Anda beri statement ByVal pada argumen fungsinya
Private Sub Form_Load() 'Dim iNumber As String iNumber = 1 'sekarang tidak akan terjadi error karena type datanya sama yakni string MsgBox TampilkanPesan(iNumber) End Sub Function TampilkanPesan(ByVal Pesan As String) As String TampilkanPesan = Pesan End FunctionMaka kesimpulannya:
- Secara default Visual Basic 6.0 telah menyertakan ByRef pada argumen walaupun kita tidak menuliskannya, terkecuali secara explicit kita menuliskan ByVal pada argumen tersebut.
- Penggunaan ByVal akan memaksa sebuah argumen untuk dijadikan data type tertentu sebagai contoh:
- ByVal Pesan As String maka pesan akan dipaksa untuk memiliki data type string.
- Penggunaan KeyWord ByVal menjadikan sebuah argumen tidak lagi memiliki hubungan dengan variable yang melewatinya. Sebagai contoh:
Dim i as integer i = 1 Msgbox TampilkanPesan(i) Msgbox i 'maka i disini, tetap saja memiliki nilai satu. Function TampilkanPesan(ByVal Pesan As String) As String Pesan = 2 TampilkanPesan = Pesan End Function
Semoga bermanfaat
No comments:
Post a Comment