c#勉強中に少し躓いた箇所についてまとめます。
初回投稿につきおかしい箇所が多いかもしれません。
参照を渡す 「ref」
引数の頭にrefをつけることによって値ではなく参照元を渡すことができます。
example.cs
public class Example
{
a = 20; //元の変数
void UseRefMethod(ref int a)
{
a = 10; // 元の変数の参照元が渡されるので元の変数にも変化がある。
}
void NoUseRefMethod(int a)
{
a = 10; //ローカル変数として扱われるので元の変数は変化しない。
}
}
上記のようにrefを使用すると、引数として渡した値の参照元のデータを動かすので元の変数も変化します。
出力パラメータ 「out」
引数の頭にoutをつけることで、関数内の値を出力することができます。このパラメータは関数に情報を伝えません(本来の引数としての役目はありません)。成功or失敗の判定に使いやすいかも?
example.cs
bool isOK;
void SampleFunc(out bool isOK)
{
isOK = true;
}
Console.Write(isOK); //Response true
このように何も入れていないはずの元の変数に出力されます。複数の出力を簡単に作りたい場合は楽かもしれません。
可変長な引数 「params」
引数の頭にparamsをつけることで、同じ方の引数をいくつも使用することができます。
example.cs
void SampleFunc(params int[] a)
{
foreach(int n in a)
{
Console.WriteLine(n);
}
}
このような形にすることで好きな数の引数を使用することができます。foreachなどと相性が良さそうですね。
まだまだ勉強し始めたばかりで個人的な解釈になってしまっている可能性がありますので間違っていたら指摘していただけると嬉しいです!