引数の参照渡し

引数の参照渡し (C# によるプログラミング入門)
http://ufcpp.net/study/csharp/sp_ref.html
概要、値渡し、参照渡し、出力引数


ref, outキーワードを使うと、参照を渡せる。

# 参照渡し(ref): メソッド内での値の書き換えの影響が呼び出し元に伝搬する。
# out: 特殊な参照渡し。戻り値以外にも値を返したいとき(複数の値を返したいとか)に使う。


値渡し(call by value)
コピーを渡すので、メソッド内で書き換えが起きても、コピー元は変わらん。
注意点として、参照型の値渡しでも、同じこと。


参照渡し(call by reference)
コピー元も変わる。
メソッドの呼び出し側にもrefをつける必要があることに注意だ。


出力引数
メソッド内で変数を初期化する予定である場合

  static void Test(out int a)
  {
    a = 10; // out を使った場合、メソッド内で必ず値を代入しなければならない
  }

ちゃんと忘れず初期化しないと駄目だ!