Rumah >pembangunan bahagian belakang >C++ >Kata Kunci C# `ref`: Bilakah Anda Harus Menggunakannya dan Bilakah Ia Tidak Diperlukan?
Bila hendak menggunakan ref dalam C# dan apabila tidak diperlukan
Dalam C#, menghantar parameter jenis rujukan mengikut nilai hanya melibatkan menghantar rujukan itu sendiri, bukan salinan objek. Ini serupa dengan menghantar penunjuk mengikut nilai dalam C atau C. Pengubahsuaian kepada nilai parameter terhad kepada dalam fungsi, manakala perubahan pada objek asas disebarkan kembali kepada pemanggil.
Sebaliknya, apabila parameter dihantar melalui rujukan, sebarang perubahan yang dibuat padanya boleh dilihat oleh pemanggil kerana ia mewakili perubahan kepada pembolehubah sebenar.
Walaupun kelihatan mengelirukan pada mulanya, adalah penting untuk memahami perbezaan antara nilai lulus dan rujukan lulus. Secara umum, sangat disyorkan untuk mengelak daripada menggunakan ref
/out
melainkan benar-benar perlu. Mekanisme ini sebenarnya membenarkan nilai pulangan tambahan untuk diambil, dan yang terbaik adalah untuk meminimumkan penggunaannya untuk mengelakkan kaedah menjadi terlalu rumit.
Dalam kes yang dinyatakan dalam soalan, received_s
tidak memerlukan hujah ref
kerana tiada salinan objek dibuat apabila nilainya dihantar ke fungsi. Walau bagaimanapun, remoteEP
memerlukan ref
kerana fungsi itu berhasrat untuk menukar nilainya dan membuat pengubahsuaian kelihatan kepada pemanggil.
Ingat bahawa objek dalam C# pada dasarnya adalah penunjuk kepada objek sebenar. Apabila objek dihantar ke fungsi, penuding sebenarnya dilalui di mana kandungan objek dibenarkan untuk diubah suai. Anda harus menggunakan ref
/out
hanya apabila anda benar-benar perlu menukar atau mencipta objek baharu di dalam fungsi, yang serupa dengan menggunakan penunjuk berganda.
Atas ialah kandungan terperinci Kata Kunci C# `ref`: Bilakah Anda Harus Menggunakannya dan Bilakah Ia Tidak Diperlukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!