メソッド呼出時に引数を渡す方法
【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("失敗...");
}