もくじ
目次(WPF/xaml/C#/C++関連メモ) - tera1707’s blog
やりたいこと
コンソールアプリで、黒窓になにか表示させるときに書くConsole.WriteLine()
は、引数を複数とって、1つ目の引数の文字列の中の{n}
を2個目以降の引数に置き換えてくれるような動きをする。
Console.WriteLine("{0}, {1}, {2}", 1, 2, 3);
以前作ったログを出力するクラスで、引数で受けた複数の文字列を、","で区切ってCSVとして出力したい、とおもったときに、Console.WriteLine()
と同じように、複数の可変長の引数を取って、それを","で区切りたい。
やりかた
メソッドの引数にparams
というキーワードを付ける。
サンプル
{ // 可変長の引数をとるメソッドに、好きな個数のパラメータを書く var v = Add(1,2,3,4,5,6,7,8,9); // 可変長の引数をとるメソッドに、引数の配列を渡す var d2 = new int[] { 1,2,3,4,5,6,7,8,9 }; var v2 = Add(d2); // どちらも同じ効果 Console.WriteLine("Answer1 : {0}", v); Console.WriteLine("Answer2 : {0}", v2); } int Add(params int[] data) { var ret = 0; foreach (var d in data) { ret += d; } return ret; }