Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C# mengendalikan objek lulus ke kaedah: rujukan atau nilai?

Bagaimanakah C# mengendalikan objek lulus ke kaedah: rujukan atau nilai?

Linda Hamilton
Lepaskan: 2025-01-31 00:31:09
asal
256 orang telah melayarinya

How Does C# Handle Passing Objects to Methods: Reference or Value?

dalam perbincangan mengenai penghantaran objek dalam c#: rujukan dan nilai

Dalam C#, objek penghantaran ke kaedah selalu menjadi konsep asas. Secara amnya dipercayai bahawa jenis bukan original diluluskan dengan rujukan.

Walau bagaimanapun, pengecualian muncul: apabila objek System.Drawing.Image diserahkan kepada kaedah dan imej diubahsuai dalam kaedah ini, objek imej asal tetap tidak berubah selepas mengembalikan pihak panggilan.

mendedahkan kebenaran: Transmisi nilai dan pemindahan rujukan

Untuk memahami fenomena ini, kita perlu menjelaskan sifat sebenar objek yang dihantar oleh objek dalam C#. Objek itu sendiri tidak akan dihantar; Untuk jenis rujukan, nilai ini adalah rujukan kepada objek sebenar, yang membolehkan perubahan kepada objek asas dalam pihak panggilan. perbezaan halus antara penghantaran nilai dan pemindahan rujukan

Secara lalai, C# menggunakan "penghantaran nilai" kepada semua jenis (termasuk jenis rujukan). Ini bermakna salinan objek diluluskan sebagai nilai awal parameter. Tukar nilai parameter tidak menjejaskan objek asal.

Untuk menukar nilai atribut objek di dalam kaedah, "pemindahan rujukan" boleh digunakan dengan menentukan kata kunci atau ref dalam pernyataan parameter. Dalam kes ini, parameter secara berkesan merujuk kedudukan ingatan yang sama seperti parameter, dan perubahan kepada parameter akan dapat dilihat dalam panggilan.

Kod Contoh:

Kesimpulan

Konsep "penghantaran nilai" dan "pemindahan rujukan" dalam C# berbeza dari pemahaman tradisionalnya. Sebaliknya, nilai parameter dihantar, sama ada sebagai salinan (jenis nilai) atau rujukan (jenis rujukan). Untuk menukar nilai atribut objek di dalam kaedah, anda boleh menggunakan kata kunci keluar atau ref untuk rujukan dan lulus.

Atas ialah kandungan terperinci Bagaimanakah C# mengendalikan objek lulus ke kaedah: rujukan atau nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan