参照渡し

C#で参照渡しをしたいときにはキーワードrefをつける。


void aho()
{
int hoge;
boke(ref hoge);
}
void boke(ref int hogehoge)
{
hogehoge += hogehoge;
}
ただし

  • 構造体は値型なので、refをつけないと値渡しとなる(この例、intやdouble、structやenumもそう)
  • クラスは参照型なので、いつでも参照渡しとなる(stringなども含まれる)
  • unsafeすれば当然ポインタ渡しも可能