Perbedaan antara Meneruskan Argumen Berdasarkan Nilai dan Referensi (Visual Basic)
Ketika Anda meneruskan satu atau beberapa argumen ke prosedur, setiap argumen sesuai dengan elemen pemrograman yang mendasarinya dalam kode panggilan. Anda dapat meneruskan nilai elemen dasar ini, atau referensi untuk itu. Ini dikenal sebagai metode penerusan.
Meneruskan Berdasarkan Nilai
Anda meneruskan argumen berdasarkan nilai dengan menentukan kata kunci ByVal untuk parameter yang sesuai dalam definisi prosedur. Ketika Anda menggunakan metode penerusan ini, Visual Basic menyalin nilai elemen pemrograman yang mendasarinya ke dalam variabel lokal dalam prosedur. Kode prosedur tidak memiliki akses ke elemen dasar dalam kode panggilan.
Meneruskan Berdasarkan Referensi
Anda meneruskan argumen berdasarkan referensi dengan menentukan kata kunci ByRef untuk parameter yang sesuai dalam definisi prosedur. Ketika Anda menggunakan metode penerusan ini, Visual Basic memberikan prosedur referensi langsung ke elemen pemrograman yang mendasarinya dalam kode panggilan.
Metode Penerusan dan Jenis Elemen
Pilihan metode penerusan tidak sama dengan klasifikasi jenis elemen yang mendasarinya. Meneruskan berdasarkan nilai atau berdasarkan referensi merujuk pada apa yang Visual Basic berikan ke kode prosedur. Jenis nilai atau jenis referensi merujuk pada bagaimana elemen pemrograman disimpan dalam memori.
Namun, metode penerusan dan jenis elemen saling terkait. Nilai jenis referensi adalah penunjuk ke data di tempat lain dalam memori. Artinya, ketika Anda meneruskan jenis referensi berdasarkan nilai, kode prosedur memiliki penunjuk ke data elemen yang mendasarinya, meskipun tidak dapat mengakses elemen yang mendasari itu sendiri. Misalnya, jika elemen adalah variabel larik, kode prosedur tidak memiliki akses ke variabel itu sendiri, tetapi dapat mengakses anggota larik.
Kemampuan untuk Memodifikasi
Ketika Anda meneruskan elemen yang tidak dapat dimodifikasi sebagai argumen, prosedur tidak akan pernah dapat memodifikasinya dalam kode panggilan, baik yang diteruskan ByVal
atau ByRef
.
Untuk elemen yang dapat dimodifikasi, tabel berikut merangkum interaksi antara jenis elemen dan metode penerusan.
Jenis elemen | Diteruskan ByVal |
Diteruskan ByRef |
---|---|---|
Jenis nilai (hanya berisi nilai) | Prosedur tidak dapat mengubah variabel atau anggotanya. | Prosedur dapat mengubah variabel dan anggotanya. |
Jenis referensi (berisi penunjuk ke instans kelas atau struktur) | Prosedur tidak dapat mengubah variabel tetapi dapat mengubah anggota instans yang ditunjuknya. | Prosedur dapat mengubah variabel dan anggota instans yang ditunjuknya. |
Lihat juga
- Prosedur
- Parameter Prosedur dan Argumen
- Cara: Meneruskan Argumen ke Prosedur
- Meneruskan Argumen menurut Nilai dan berdasarkan Referensi
- Perbedaan Antara Argumen yang Dapat Dimodifikasi dan Tidak Dapat Dimodifikasi
- Cara: Mengubah Nilai Argumen Prosedur
- Cara: Melindungi Argumen Prosedur Terhadap Perubahan Nilai
- Cara: Memaksa Argumen untuk Diteruskan berdasarkan Nilai
- Meneruskan Argumen menurut Posisi dan Berdasarkan Nama
- Jenis Nilai dan Jenis Referensi
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