Rumah >pembangunan bahagian belakang >C++ >Nilai vs Rujukan: Bagaimanakah C# lulus objek ke kaedah?
Dalam C#, tingkah laku pembolehubah jenis bukan original telah diterima secara meluas dengan rujukan. Walau bagaimanapun, sesetengah pemaju mungkin menghadapi perbezaan apabila berurusan dengan objek seperti System.Drawing.Image. Memahami butiran penghantaran objek adalah penting untuk mengelakkan kemalangan.
Secara lalai, objek tidak langsung diserahkan kepada kaedah. Sebaliknya, nilai yang sama dinilai dan nilai parameter awal diluluskan sebagai parameter. Untuk jenis rujukan (jenis bukan -Original), nilai ini mewakili rujukan kepada objek sebenar atau null. Oleh itu, apa -apa pengubahsuaian objek di dalam kaedah boleh dilihat oleh pemanggil.
Untuk menghantar semantik mengikut rujukan, kata kunci
atau
mesti digunakan, tanpa mengira jenis parameter. Dengan menyatakan kata kunci ini, parameter itu sendiri akan diluluskan mengikut rujukan untuk memastikan perubahan kepada parameter dapat dilihat.
out
Berikut adalah contoh yang mudah: ref
Sebaliknya, pengubahsuaian data dalam objek rujukan apabila lulus objek akan dapat dilihat oleh pemanggil.
<code class="language-csharp">public void Foo(Image image) // 按值传递 { // 对参数的更改对调用者不可见。 image = Image.FromStream(...); } public void Foo(ref Image image) // 按引用传递 { // 对参数的更改对调用者可见。 image = Image.FromStream(...); }</code>Untuk penjelasan yang lebih komprehensif mengenai tema ini, lihat artikel terperinci dalam pautan yang disediakan oleh jawapan yang disediakan.
Atas ialah kandungan terperinci Nilai vs Rujukan: Bagaimanakah C# lulus objek ke kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!