Perbezaan antara parameter ref dan keluar dalam C#

Perbezaan antara parameter ref dan keluar dalam C#

parameter ref (rujukan)

Parameter "Ref" digunakan untuk lulus nilai dengan rujukan dari parameter sebenar ke parameter rasmi i.e dari kaedah callee ke kaedah yang dipanggil. Di C#, parameter yang diisytiharkan dengan pengubah "ref" adalah parameter rujukan. Apabila anda lulus parameter dengan rujukan, tidak seperti parameter nilai, lokasi baru tidak dibuat untuk parameter ini. Sebarang perubahan yang dibuat kepada parameter rasmi akan mencerminkan dalam parameter sebenar.

Contoh parameter ref
Seperti yang ditunjukkan dalam coretan program di atas, sebarang perubahan yang dibuat kepada M akan ditunjukkan kepada N, kerana parameter diluluskan dengan rujukan.

parameter keluar (output)

Parameter output digunakan untuk lulus hasilnya kembali ke fungsi panggilan. Kata kunci 'keluar' digunakan untuk mengisytiharkan parameter sebagai parameter output. Sama dengan parameter rujukan, parameter output tidak membuat lokasi storan baru. Sebaliknya, ia menjadi alias kepada parameter dalam kaedah panggilan.

Contoh Parameter Keluar
Dalam program di atas, x diisytiharkan sebagai parameter keluar dalam fungsi panggilan dan seperti yang anda lihat, x belum dimulakan. Apabila fungsi persegi tamat, nilai q akan disalin ke parameter output x.

Perbezaan antara parameter ref dan keluar dalam C#

  1. Dalam parameter rujukan, perubahan yang dibuat kepada parameter rasmi mencerminkan parameter sebenar, sementara dalam parameter keluar, nilai dicerminkan kembali ke parameter keluar fungsi panggilan.
  2. Parameter sebenar 'output' biasanya tidak diberikan nilai sementara parameter sebenar diisytiharkan sebagai rujukan harus selalu diberikan nilai sebelum memanggil.
    Catatan: Anda mesti memberikan nilai kepada parameter keluar dalam badan kaedah; Jika tidak, kaedah itu tidak akan disusun.
  3. Parameter keluar dan ref tidak membuat lokasi memori baru.
  4. Parameter ref dan keluar diperlakukan secara berbeza pada waktu larian, tetapi mereka dianggap sama pada waktu penyusunan.