おれ、Unity2Dでゲーム作るんだ。

Unity2Dをメインに、覚書などを記事にしていきます。

C# - 引数につける修飾子 ref

refって?

refとはなんぞと思ったら、referenceのrefで、つまりは参照渡しでした。 メソッドの定義で、参照渡しで定義できるんですね。

サンプル

//値渡し
static void valuex2(int val)
{
    val = val * 2;
    Debug.Log(">"+val);
}
//参照渡し
static void valuex3(ref int val)
{
    val = val * 3;
    Debug.Log(">"+val);
}

例えば、下記のように実行すると、

int i = 10;
valuex2(i);
Debug.Log(">>"+i);

valuex3(ref i);
Debug.Log(">>"+i);

こんな感じの出力結果になります。

 >20
 >>10

 >30
 >>30

参照渡しで定義したメソッドは、使う際にもrefをつけないとエラーになります。