【C#】引数に付加するキーワード ~ ref / out / params ~

メソッド呼出時に引数を渡す方法

【1】 値渡し(call by value)
【2】 参照渡し(ref)
【3】 特殊な参照渡し(out)
【4】 その他

■ ref

 * 参照渡し(call by reference): C言語でいうアドレス渡し
 * 参照渡しは、メソッドの引数に ref キーワードを付ける

サンプル

string name = "Mike";
this.method(ref name);
Console.Write("Hello, " + name); // 「Hello, Tom!」が出力

・・・略・・・

void method(ref string name)
{
     name = "Tom"; // メソッド内で値を書き換えることができる。
}

参考資料

http://ufcpp.net/study/csharp/sp_ref.html#byval

■ out

 * 特殊な参照渡し(out): 戻り値以外にも値を返したいときに使う
 * メソッドの引数に outキーワードを付ける
 * TryParseメソッドなどで、使われている

サンプル

string value = "3.141592";
double outValue;
if(double.TryParse(value, out outValue))
{
    Console.WriteLine("成功 : " + outValue); // 「成功 : 3.141592」
}
else
{
    Console.WriteLine("失敗...");
}

params

 * 可変個の引数を取るメソッドを定義できる
  => 詳細は、以下の関連記事を参照。
https://blogs.yahoo.co.jp/dk521123/29113938.html

関連記事

C#】可変長引数 ~ params ~

https://blogs.yahoo.co.jp/dk521123/29113938.html