The MSDN halaman di ByRef
dan ByVal
kata kunci tidak sangat membantu; kecuali saya entah bagaimana melewatkannya, mereka hanya disebut sebagai "kata kunci" di mana-mana.
Salah satu kontributor utama dari proyek Rubberduck sedang mengerjakan refactoring Field Encapsulate yang sangat keren , dan UI datang dengan sangat baik .. kecuali saya memiliki masalah dengan label di atas dropdown untuk ByRef
/ ByVal
, yang mengatakan "Aksesibilitas":
Saya tidak suka "Aksesibilitas" karena saya menggunakannya di tempat lain untuk Public
/ Private
/ Friend
pengubah akses yang rasanya lebih akurat.
Saya tidak ingin menggunakan "Pengubah" karena IMO itu hanya kependekan dari "pengubah akses".
Saya ingin label itu akurat, tetapi kosakata saya tampaknya kurang dan saya tidak tahu harus memanggil apa kata kunci ini.
Apa yang harus dikatakan label ini, agar akurat? Apa kata yang saya cari? "Keluarga kata kunci" apa yang dimiliki ByRef
/ ByVal
dimiliki?
ByVal
tanpa kemungkinan untuk mengubahnyaByRef
selain mengedit kode yang dihasilkan secara manual, dan "masalah terpecahkan"! VBA dapat mengkompilasi sejumlah besar omong kosong jahat yang Anda tahu :-) tetap saja, saya suka akhirnya ada tempat online yang memberi nama pada kata kunci ini.Jawaban:
Dalam hal ini, saya akan menggunakan "Pass As" (atau "Pass").
Anda memiliki aliran yang sangat cocok dengan penggunaan ini.
Ini sesuai dengan alur kerja Anda secara sempurna dan kebetulan adalah persis apa yang ditunjukkan oleh artikel yang Anda referensi.
Ketika Anda membaca opsi-opsi Anda, ia membaca dengan sempurna saat menggunakan 'Pass As' karena Anda cukup membaca judulnya dan memilih teks dengan tepat - "'Variable name' foo, nilai 'Pass As'."
Jika Anda ingin membuatnya sedikit lebih baik Anda bisa membuat opsi daftar Anda "Nilai" dan "Referensi" tergantung pada apakah audiens target Anda adalah pemrogram VBA atau pemrogram non-VBA yang mungkin sedikit kurang terbiasa dengan kata kunci ByVal dan ByRef.
Atau sebagai alternatif, ubah ke "Lulus:" dan jadikan "Dengan Referensi (ByRef)" dan "Dengan Nilai (ByVal)" di dropdown. Sepertinya dropdown Anda memiliki ruang untuk menampilkan semua teks ini. Atau hanya kata kunci ByRef / ByVal.
sumber
Saya akan menggunakan salah satu dari 3 istilah ini untuk memberi label pilihan yang memilih:
sumber
"Pass By Semantics" mungkin paling dekat dengan apa yang Anda cari.
sumber
Istilah yang paling tepat dan formal untuk ini adalah "Aliasing semantik".
Saat
ByRef
digunakan, nama di dalam fungsi adalah alias untuk variabel penelepon - semua perubahan ke salah satu yang langsung terlihat ke yang lain. DenganByVal
, nama di dalam fungsi adalah salinan berbeda dari variabel pemanggil (tentu saja, baik pemanggil dan salinan fungsi dapat merujuk ke objek yang sama, tetapi mereka berbeda dalam menetapkan ulang parameter di dalam fungsi tidak menetapkan kembali variabel pemanggil ).Pilihannya adalah
ByRef
)ByVal
)Beberapa platform menambahkan kemungkinan ketiga, di mana aliasing variabel pemanggil dilakukan tetapi tidak diizinkan untuk lebih dari satu parameter ke objek tumpang tindih alias. (Gagasan di balik
restrict
kata kunci C , orang juga menemukan ini di IDL, di mana kata kunci atributnyaunique
). .NET tidak memiliki cara yang baik untuk menyandikan pengetahuan ini.sumber
Saya akan menyebutnya kategori "[argumen]".
Argumen memiliki nama, tipe dan kategori.
sumber