忍者ブログ
おそらく活動状況とか、他愛もないこととか書きます。 μ崎みのりの気ままで気まぐれなブログです。 作曲とか、ゲーム製作なんかしてます。
[580]  [579]  [578]  [577]  [576]  [575]  [574]  [573]  [572]  [571
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

私は結構若い頃(小学生時代)からC#に触れていて、
言語がバージョンアップする度にその情報を追いかけて見ています。
そのため、恐らく普通の人よりはC#の言語仕様に詳しいと自負しています。

……自負しているはずなんですが。
ちょっとした省略の仕様とかで最近知らなかったものを見つけたのでメモ。

①配列初期化子の簡略化
一番古いタイプの省略記法を知りませんでした。
C#3.0で追加された型推論タイプは知ってたのに……。

// 普通の配列初期化子
int[] array1 = new int[] { 0, 1, 2, 3, 4 };
// 暗黙に型指定された配列初期化子(C#3.0以降)
int[] array2 = new[] { 0, 1, 2, 3, 4 };
// 知らなかったシンタックス。配列型変数の宣言と同時に初期化する場合のみ有効。
int[] array3 = { 0, 1, 2, 3, 4 };


②オブジェクト / コレクション初期化子の簡略化
ちょっとしたことなんですが、コンストラクタに引数がなければ括弧を省略できるんですね…。

var list = new List<int> { 0, 1, 2, 3, 4 };
var point = new Point { X = 10, Y = 20 };


コンストラクタなのに括弧がないと少し気持ち悪く感じます。
ただ、オブジェクト初期化子を使って初期化する時ってコンストラクタに引数がない場合が
多いので、括弧を省略することで「オブジェクト初期化子使ってますよ!」のアピールにはなるんじゃないかなーとは思います。
使えるものは使うスタンスなので、気付いたからには積極的に省略しますよ。
個人的に、C#は冗長に書くより短く書いた方が吉な言語だと思ってますので。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
μemo pagesについて
記事と全く関係のないことなので恐縮ですが、μemo pagesのDLサイトへのリンクが間違っていましたのでこちらに報告させていただきます。正しくはhttp://www.vector.co.jp/soft/winnt/writing/se500960.htmlでした。
何処かの誰か 2015/06/03(Wed)18:17:46 編集
忍者ブログ [PR]