連載:[完全版]究極のC#プログラミング

Chapter12 varによる変数宣言とコレクション初期化子

川俣 晶
2010/02/01

12.9 暗黙に型付けされた配列とnull

 「暗黙に型付けされた配列」でも、「暗黙的に型指定されるローカル変数」と同様に、やはりnullは特殊な扱いを受ける。しかし、nullがつねに受け付けられないわけではない。

 たとえば、次のケースは有効である。文字列である"A"や"B"によって型を推測できるので、nullが含まれていても推測できる。

var case1 = new[] { "A", "B", null }; // case1はstring型

 しかし、次のケースでは型を推測する手かかりがないので、コンパイルエラーとなる。

var case2 = new[] { null, null, null };
// エラー  1  暗黙的に型指定された配列の最適な型が見つかりませんでした

 とはいえ、型のヒントさえあればよいので、次のようにnull値にキャストを付けて型を明示してやれば、コンパイル可能となる。

var case3 = new[] { (string)null, null, null }; // case3はstring型

 しかし、次のように型を明示して書くほうが短く書けるので、あまり役立つテクニックでもないだろう。

string [] case4 = { null, null, null };


 INDEX
  [完全版]究極のC#プログラミング
  Chapter12 varによる変数宣言とコレクション初期化子
    1.12.1 暗黙的に型指定されるローカル変数
    2.12.2 Variant型の悪夢
    3.12.3 暗黙的に型を明示する
    4.12.4 なぜvarを使うのか?
    5.12.5 varが使用できない場面
    6.12.6 varを活用できる場面
    7.12.7 暗黙的に型指定されるローカル配列
    8.12.8 暗黙に型付けされた配列と型の推測
  9.12.9 暗黙に型付けされた配列とnull
    10.12.10 コレクション初期化子
    11.12.11 Dictionaryクラスとコレクション初期化子
    12.12.12 引数が2つのAddメソッドとコレクション初期化子/C#olumn
 
インデックス・ページヘ  「[完全版]究極のC#プログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間