Я понимаю, что если я передаю значение типа (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";
}