値タイプ(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";
}