Menguasai out
dan ref
dalam Hantaran Parameter
Apabila bekerja dengan kaedah dan pembolehubah luaran, parameter ref
dan out
menyediakan cara yang cekap untuk mengubah suai data di luar skop kaedah. Walaupun kedua-duanya mengubah pembolehubah di luar skop setempatnya, memahami nuansanya adalah kunci untuk memilih alat yang sesuai untuk tugas itu.
out
untuk Pengendalian Data Dioptimumkan
Gunakan kata kunci out
apabila nilai awal pembolehubah tidak penting kepada fungsi kaedah. Pendekatan ini amat cekap apabila berurusan dengan set data yang besar atau komunikasi antara proses, kerana ia mengelakkan pemindahan data awal yang tidak diperlukan, menjimatkan lebar jalur dan meningkatkan prestasi. Parameter out
jelas menunjukkan bahawa nilai input kaedah diabaikan.
ref
untuk Pemeliharaan Nilai
Sebaliknya, ref
adalah ideal apabila nilai awal pembolehubah adalah penting untuk logik kaedah. Guna ref
apabila kaedah perlu menggunakan dan mengubah suai nilai sedia ada pembolehubah.
Pertimbangan Permulaan
Perbezaan yang halus tetapi ketara terletak pada pemulaan: out
parameter tidak memerlukan pra-permulaan, manakala ref
parameter mesti dimulakan sebelum dihantar ke kaedah. Fleksibiliti ini menjadikan out
amat berguna apabila nilai awal tidak tersedia.
Contoh Praktikal
Mari kita periksa coretan kod yang menggambarkan penggunaan yang betul out
dan ref
:
out
Contoh Parameter:
<code class="language-c#">string firstName, lastName; person.GetFullName(out firstName, out lastName);</code>
Di sini, GetFullName()
mendapatkan semula dua komponen nama tanpa memerlukan nilai awal (kemungkinan tidak ditentukan) bagi firstName
dan lastName
. Menggunakan out
menghalang penghantaran nilai awal ini yang tidak diperlukan.
ref
Contoh Parameter:
<code class="language-c#">string userName = "invalidUser"; bool isValid = validator.ValidateUserName(ref userName);</code>
Dalam kes ini, ValidateUserName()
mengubah suai userName
pembolehubah. ref
memastikan kaedah berfungsi dengan nilai userName
sedia ada, berpotensi membetulkannya dan mengembalikan hasil pengesahan.
Atas ialah kandungan terperinci `Bila Gunakan 'ref' vs. 'out' untuk Parameter Passing dalam C#?`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!