Rumah > pembangunan bahagian belakang > C++ > Bila dan Mengapa Gunakan 'ref' dengan Jenis Rujukan dalam C#?

Bila dan Mengapa Gunakan 'ref' dengan Jenis Rujukan dalam C#?

Patricia Arquette
Lepaskan: 2025-01-06 20:49:44
asal
842 orang telah melayarinya

When and Why Use

Kepentingan "ref" untuk Pembolehubah Jenis Rujukan dalam C#

Pengaturcara C# sering menemui kata kunci "ref" apabila bekerja dengan rujukan -jenis pembolehubah, seperti kelas. Walaupun gelagat "ref" dengan jenis nilai terkenal, tujuannya untuk jenis rujukan mungkin kurang jelas.

Latar Belakang

Apabila menghantar nilai -taip mengikut nilai tanpa kata kunci "ref", salinan pembolehubah dibuat dan dihantar ke kaedah. Walau bagaimanapun, dengan jenis rujukan, menghantarnya tanpa "ref" sudah melibatkan merujuk pembolehubah itu sendiri.

Penggunaan "ref" dengan Reference-Types

Jadi, apakah faedah menggunakan "ref" dengan jenis rujukan? Perbezaan utama terletak pada keupayaan untuk menetapkan semula rujukan pembolehubah.

Contoh

Pertimbangkan contoh berikut:

var x = new Foo();

// Without "ref"
void Bar(Foo y)
{
    y.Name = "2";
}

// With "ref"
void Bar(ref Foo y)
{
    y.Name = "2";
}

// Test
Bar(x);
Salin selepas log masuk

Dalam kes pertama , y ialah rujukan kepada x, dan mengubah suai y.Name mengemas kini objek. Walau bagaimanapun, kes kedua, menggunakan "ref," membolehkan kami melakukan sesuatu yang unik.

Di dalam kaedah Bar dengan "ref," kita boleh menetapkan semula rujukan yang y tunjuk. Contohnya:

Foo foo = new Foo("1");

// Reassign reference via "ref"
void Bar(ref Foo y)
{
    y = new Foo("2");
}

Bar(ref foo);

// After Bar() call
Console.WriteLine(foo.Name);
Salin selepas log masuk

Di sini, panggilan ke Bar(ref foo) secara berkesan menugaskan tika Foo baharu kepada foo. Ini bermakna pembolehubah foo asal kini menunjuk ke objek berbeza dengan nama "2."

Kesimpulan

Oleh itu, "ref" dengan jenis rujukan menyediakan fleksibiliti untuk menetapkan semula rujukan objek, membenarkan senario lanjutan yang tidak mungkin berlaku sebaliknya.

Atas ialah kandungan terperinci Bila dan Mengapa Gunakan 'ref' dengan Jenis Rujukan dalam C#?. 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