C#で参照渡しをしたいときにはキーワードrefをつける。
ただし
void aho()
{
int hoge;
boke(ref hoge);
}
void boke(ref int hogehoge)
{
hogehoge += hogehoge;
}
- 構造体は値型なので、refをつけないと値渡しとなる(この例、intやdouble、structやenumもそう)
- クラスは参照型なので、いつでも参照渡しとなる(stringなども含まれる)
- 注意: stringはクラスだが、=などは値渡しなので構造体に含まれる際に注意、http://msdn.microsoft.com/ja-jp/library/8b0bdca4.aspx
- unsafeすれば当然ポインタ渡しも可能