1. ホーム
  2. c#

[解決済み】C#の参照型変数の "ref "の使い方は?

2022-04-12 10:21:28

質問

値型を渡すと( 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";
}

解決方法は?

を変更することができます。 foo を使用して指します。 y :

Foo foo = new Foo("1");

void Bar(ref Foo y)
{
    y = new Foo("2");
}

Bar(ref foo);
// foo.Name == "2"