実際はプログラマはこのフィールドにアクセスすることはできない。匿名型[編集]一時的に使用される型を簡単に定義するための匿名型が導入された。}上の式は、以下の内容のクラスを暗黙に定義する。定義されたクラスは匿名であるが故にプログラマは参照できない。}同じ型、同じ名前のプロパティを同じ順序で並べた匿名型は同じであることが保証されている。キーワードを用いた配列の宣言の際、型を省略できるようになった。匿名型の配列を宣言する際に威力を発揮する。サポートするために、クエリ式が導入された。構文に類似しており、最終的に通常のメソッド呼び出しに変換されるものである。3.0で追加された構文の多くは式であるため、より巨大な式(当然クエリ式も含まれる)の一部として組み込むことができる。旧来複数の文に分けたり、作業用の変数を用意して記述していたコードを単独の式としてより簡潔に記述できる可能性がある。4.0からの仕様[編集]dynamicキーワード[編集]dynamicキーワードが導入され、動的型付け変数を定義できるようになった。dynamic型として宣言されたオブジェクトに対する操作のバインドは実行時まで遅延される。obj.Value;}オプション引数・名前付き引数[編集]VBやC++に実装されているオプション引数・名前付き引数が、C#でも利用できるようになった。C;}ジェネリクスの共変性・反変性[編集]ジェネリクスの型引数に対してin、out修飾子を指定することにより、ジェネリクスの共変性・反変性を指定できるようになった。IEnumerable&lt;T&gt;インターフェイスは型引数にout修飾子が指定されているため、共変である。Internationalを通じて公開・標準化されており、第三者がマイクロソフトとは無関係にコンパイラや実行環境を実装することができる。現段階で、C#コンパイラの実装は次の5つが知られている。プラットフォーム(開発名Roslyn)。ApacheライセンスのオープンソースプロジェクトでGitHubで公開されている[5]。Windows、macOS、Linuxで動作する。C#のコンパイラはC#、VB.NETのコンパイラはVB.NETで実装されている。以前のコンパイラと比べて、リファクタリングやIDE、スクリプティングなどへの利用が可能なAPIが公開されており、コンパイラ以外への様々な応用が可能。Infrastructure。C#コンパイラがソースコードで公開されている。