配列初期化の記述違い | vicのブログ

vicのブログ

ツール系やソフト開発について書こうと思っています。
書き込み大歓迎です。
間違いとかもっといい方法とかあったらご指摘いただけるとありがたいです。
質問をいただいたら、記事をもっとわかりやすく変更します。

C#(VisualStudio2010使用)

  ※VisualStudio2012ではC#のバージョンが上がるので部分的に動作が違ったりするので注意

では、


配列の宣言と同時に初期化は


new は書かなくて良い。推論してくれる。


例:

int[] a1= {1,1,1,1,2,2,2,2};


例:

ただし、これはエラーになる

int[] a1;

a1= {1,1,1,1,2,2,2,2}; // エラー


ではどうするか、


例:

int[] a1;

a1= new []{1,1,1,1,2,2,2,2}; //エラーにならない



配列の型は記述しなければならないが、

配列以外の型は推論してくれる。これはちょっとありがたい。

int を書かなくても大丈夫。

もちろん

a1= new int[]{1,1,1,1,2,2,2,2};

と書いてもエラーは出ない。


いっそ new [] も推論してくれればいいのにと思うのだが、

VisualStudio2012の新型C#ではどうなんだろうか?


XNAがVS2012C#にも正式対応してほしいところ。終了らしいので残念。

VS2012C#ではラムダ式のバグっぽい(仕様らしい)のも直っているし、

VS2010C#では他にもなにかありそうでちょっと怖い。