Rumah >pembangunan bahagian belakang >C++ >Bila dan Mengapa Gunakan 'ref' dengan Pembolehubah Jenis Rujukan dalam C#?
Memahami Penggunaan "ref" dengan Pembolehubah Jenis Rujukan dalam C#
Walaupun jelas bahawa kata kunci "ref" membolehkan kita untuk lulus rujukan kepada pembolehubah jenis nilai mengikut nilai, kepentingannya dengan jenis rujukan mungkin kurang jelas. Artikel ini meneroka kes penggunaan khusus "ref" dengan pembolehubah jenis rujukan.
Pertimbangkan kelas berikut:
public class Foo { public string Name; public Foo(string name) { Name = name; } }
Meluluskan Pembolehubah Jenis Rujukan mengikut Nilai lwn. Rujukan:
Tanpa kata kunci "ref", lulus pembolehubah jenis rujukan (cth., "x") kepada kaedah masih memberikan rujukan, bukan salinan. Ini bermakna kaedah tersebut beroperasi pada objek asal. Contohnya:
var x = new Foo("1"); void Bar(Foo y) { y.Name = "2"; } Bar(x); // changes the Name property of the original object
Menggunakan "ref" untuk Mengubah Rujukan Pembolehubah Jenis Rujukan:
Walau bagaimanapun, kata kunci "ref" dengan jenis rujukan pembolehubah berfungsi untuk tujuan tertentu: ia membolehkan kita menukar rujukan pembolehubah dalam kaedah. Contohnya:
Foo foo = new Foo("1"); void Bar(ref Foo y) { y = new Foo("2"); // creates a new object and assigns it to y } Bar(ref foo); // changes the reference of 'foo' to point to the new object
Dalam kes ini, selepas memanggil "Bar(ref foo)", "foo" tidak lagi akan merujuk objek asal tetapi sebaliknya akan merujuk objek yang baru dibuat dengan sifat Name "2 ".
Aplikasi Praktikal:
Kefungsian ini boleh berguna dalam senario yang kita mahu kembalikan objek baharu daripada kaedah tanpa perlu menghantar semula rujukan secara eksplisit sebagai parameter keluar. Sebagai contoh, kita boleh mencipta kaedah yang mencari dan mengembalikan elemen pertama dalam senarai yang memenuhi kriteria tertentu:
public static T FindFirst<T>(List<T> list, Func<T, bool> predicate) where T : class { foreach (T item in list) { if (predicate(item)) return item; } return null; }
Menggunakan kata kunci "ref" dalam kaedah ini membolehkan kami mengelak daripada membuat parameter keluar sementara masih dapat mengembalikan objek yang ditemui.
Atas ialah kandungan terperinci Bila dan Mengapa Gunakan 'ref' dengan Pembolehubah Jenis Rujukan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!