こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。
みなさん「可変長引数」ってご存知ですか?
C#には"params"というキーワードを使うことで、メソッドの引数を可変にすることができます。
今回はそんな「可変長引数」について解説していきたいと思います。
C# 可変長引数とは
まずはそもそも可変長引数とはなんなのか、説明していきます。
文字を見ていただければ、想像はつくのですが関数の引数を可変(決まった数ではない)にすることができることをいいます。
パラメーターの宣言で指定した型の引数のコンマ区切りのリストや、指定した型の引数の配列を渡すことができるんです。
また、”引数を渡さない”こともできます。 引数を渡さない場合、paramsリストの長さはゼロとなります。
サンプルコード
では早速サンプルコードと一緒に見ていきましょう。
using System;
class ParamsTest
{
static void Main()
{
// この値の中から最大の値を検索したい
int a = 314, b = 159, c = 265, d = 358, e = 979;
// 自動的に配列を作って値を格納する
int max = Max(a, b, c, d, e);
// 出力
Console.Write("{0}n", max);
}
static int Max(params int[] a)
{
int max = a[0];
for(int i=1; i<a.Length; ++i)
{
if(max < a[i])
max = a[i];
}
return max;
}
}
簡単に説明すると、static int Max(params int[] a) 関数の引数のところで「params」を指定します。
そうすることで、この「引数は可変ですよ!」という意味になります。
簡単ですよね♪
これで引数が増えたとしても、無くなったとしてもこの関数一つで対応できます。
まとめ
今回はC#の可変長引数について簡単にまとめました。
一度覚えれば簡単に実装できるし、とても便利なのでぜひ覚えておきましょう!
これでコードの節約ができますね。
C#の記事はほかにもあるので、よかったら参考にしてみてください。
【簡単解説】C# シングルトンでインスタンスをひとつに!
[C#] ラムダ式はこれさえ見ればOK!簡単徹底解説