可変長引数 | のんびりした人の日記

のんびりした人の日記

仕事の愚痴とアニメ関連のことを書いていきます。

今回の勉強メモは可変長引数というものです。
今までパラメーターといえば、自分で関数やメソッドを定義したときには、定義したときに設定したパラメーターの個数しか変数をセットすることはできないという感じでしたよね。
けど、C#では「パラメーターの何個まで、みたいな感じにしたい」という要望にこたえてくれています。それが今回の可変長引数です。


使い方はメソッドのパラメーターを配列の形で設定し、型を決めます。んでその前にparams修飾子というものを加えて終了です。
あとは、メソッドの処理を定義する際に添え字を利用して配列の演算を書いていくという感じで、メソッドの処理の定義は通常の配列のように書いちゃえば問題ないです。
またその時に配列が持っているLengthプロパティを使ったりすると便利かも知れません。
というか、配列というとfor文と併用するというイメージがありますが、今回もそんな感じですね。うん、繰り返し文で有効ですw


パラメーターのセットの仕方は
①変数を格納した変数を渡す。
②値を直接渡す
③配列を定義してそれを渡す
などいろんな方法があります。また①~③を組み合わせることも可能です。
また、パラメーターに渡すものが1つもなくても動作してしまいます。なので、渡すものが1つもないときには別の処理を行うようにするなどしておくべきだと思います。


そして、パラメーター配列の設定をする際に注意すべきことは
①メソッドにおいて通常の仮引数とパラメーター配列を引数に持つときには、必ず最後の引数にパラメーター配列を記述すること
②どのような場合でも、1つのメソッドにおいてパラメーター配列は1つしか記述できないこと
を頭に入れておけばいいと思います。

これがあるのとないのではプログラミングの幅も結構変わってくると思いますね。
大学の授業の時にやったアルゴリズムを実際にプログラミングして動作させるときこれがあれば結構楽だったと思うんですけどね。

では今回はこの辺で。