・以下のエラーメッセージを確認しました。
int z;
s.swap(ref x, ref z);
未割り当てのローカル変数‘z’が使用された
s.swap(ref x, ref (x + y));
refまたはout値は、割り当て可能な変数でなければなりません
s.swap(ref x, ref (200));
refまたはout値は、割り当て可能な変数でなければなりません
はい、この通りです。それぞれの意味を理解しておいてください。
・キーワードの参照により、呼び出し側の引数を入れ替えられたりするとのことですが、refキーワードやoutキーワードなどはどういった場面で使われるのでしょうか。
ref/outキーワードを用いて引数を参照渡しにすることで、
メソッド内で仮引数の値を操作すると、実引数の値に反映します。
よって、本来は最大1つの情報しか返せないメソッドで複数の情報を返すことができます。
また、メソッドへのデータ操作の依頼がわかりやすくなります。
テキストではこのことを利用する一例として、値の入れ替え(swap)を行っていますが、
配列などのデータ構造を渡して最大値と最小値を返すメソッドなどにも便利です。