Saya mengerti bahwa jika saya meneruskan tipe-nilai ( int
,, struct
dll.) Sebagai parameter (tanpa ref
kata kunci), salinan variabel tersebut diteruskan ke metode, tetapi jika saya menggunakan ref
kata kunci, referensi ke variabel tersebut diteruskan, bukan yang baru.
Tetapi dengan tipe referensi, seperti kelas, bahkan tanpa ref
kata kunci, referensi diteruskan ke metode, bukan salinan. Jadi apa gunanya ref
kata kunci dengan tipe referensi?
Ambil contoh:
var x = new Foo();
Apa perbedaan antara yang berikut ini?
void Bar(Foo y) {
y.Name = "2";
}
dan
void Bar(ref Foo y) {
y.Name = "2";
}