Какая польза от «ref» для переменных ссылочного типа в C #?
Я понимаю, что если я передаю значение типа (int
, struct
и т. д.) в качестве параметра (безref
ключевое слово), копия этой переменной передается методу, но если я используюref
ключевое слово передается ссылка на эту переменную, а не на новую.
Но с ссылочными типами, такими как классы, даже безref
Ключевое слово, передается метод, а не копия. Так какая польза отref
ключевое слово с ссылочными типами?
Взять, к примеру:
var x = new Foo();
В чем разница между следующим?
void Bar(Foo y) {
y.Name = "2";
}
а также
void Bar(ref Foo y) {
y.Name = "2";
}