C言語で、関数での演算結果を受け取るとき、一つなら関数の戻り値を使い、二つ以上なら引数に変数のポインタを渡して受け取ることが多い。たとえば2つの値を受け取るときは次のような感じ。
void GetPos( int* x, int* y ) { *x = 123; *y = 456; } void Func() { int x, y; GetPos( &x, &y ); }
C#の場合はポインタが使えないのでoutキーワードやrefキーワードを使って参照渡しを行う。
outを使うときにはメソッドの定義とそれを呼び出す側の両方にoutキーワードをつける。outを使った例は次の通り。
void GetPos( out int x, out int y ) { x = 123; y = 456; } void Func() { int x; int y; GetPos( out x, out y ); }
outの場合は変数の初期化は必要ないが、refキーワードの場合は初期化してから渡さなければならない。