【C#】お手軽配列作成メソッド【自作メソッド】

さて、基礎的なことが続いていましたのでこのあたりで少し実践的なものも入れていこうと思います。

私はクラスライブラリのプロジェクトに自作メソッドを詰め込んで取り廻すようにしていますが、初期に作成した「お手軽配列作成メソッド」を紹介します。

通常、配列を宣言する場合、

int[] test1 = new int[] { 1, 2, 3 };
var   test2 = new int[] { 1, 2, 3 };
int[] test3 = {1, 2, 3};

のように記載します。
これらはいずれも同じようにコンパイルされます。

一方、以下の記載は型推定エラーとなりコンパイルできません。

var test4 = { 1, 2, 3 };	//型推定エラー

また、最初のtest3の例を宣言と代入に分割した場合も文法エラーでコンパイルできません。

int[] test3;
test3 = { 1, 2, 3 };	//文法エラー

ということで、一番文字数が少ない記載方法は初期化時代入、あとから代入でそれぞれ

int[] test3 = {1, 2, 3};	//初期化時代入

int[] test1;				//代入なしのvar宣言は不可
test1 = new int[] { 1, 2, 3 };

タイプセーフなC#のお作法通り、という記載法ですね。
ただ、個人で作成している場合には明らかに型が分かっているのにわざわざ型宣言するのもなぁ…ということもあります。
(チーム作成の場合には他の人の可読性にも配慮がいりますので、上記の限りではありません。念のため。)

そこで、作成したのが以下のメソッドです。

ArrayElementType[] Params<ArrayElementType>(params ArrayElementType[] args)
    => args;

はい、ジェネリックと可変長引数を使って、可変長引数で渡された引数群をそのまま返却しています。
=> args; は { return args; }と読み替えて頂いて大丈夫です。
(いずれアロー演算子として説明します。)

このメソッドを定義しておくと以下のように使用できます。

var test5 = Params(1, 2, 3);

int[] test6;
test6 = Params(1, 2, 3);

初期化時に代入する場合には型推定が使用できますし、後から代入する場合にも全く同一の構文で代入が可能です。
コード変更をする場合にエラーが発生しづらいので重宝しています。

以上、参考になれば幸いです。

いいなと思ったら応援しよう!