C#3.0の新機能に

以下のサイトにC#3.0の新機能が書いてあるけど、Anonymous typesというのは知らなかった。

http://www.codepost.org/view/126

これで匿名の型(一時的な型)を作れる。

var o = new { Name = "Niek", Gender = "Male", Active = true };

Extension methodsやらLINQやらは知っていたけど、これは初耳だった。
ちょっとしたデータの入れ物として、単純なクラスをインナークラスとして作ることがよくあるので、
これを使えればかなり便利。


もう少し詳しく読んでみると、以下のように書いてあった。

The compiler will create an anonymous class "under the hood". This class will have 3 private attributes (_name, _gender and _active) and 3 public properties with their respective getters and setters (Name, Gender and Active). This is especially handy when you're receiving data (from a file or via a network) and you don't want to create a class just to hold the data.

あれだけの宣言で、実際にはフィールドとそれにアクセスするためのプロパティが定義されるみたい。
メソッドは無理なのかな、まぁ目的が違うということなんやろうけど。


ところで、このオブジェクトに対して存在しないプロパティにアクセスすると
コンパイルエラーが出たりするのかな?
もしそうなら、かなり中途半端な動的言語になるけど、どうなんやろ。

あと、結構気になるのは、VSのIntelliSenceが利くのかというところとか。
まぁ、どっちにしろこういった動的な側面は開発にかなり便利なので早く使いたいな。
でも、C#の初心者が簡単だからという理由で、こればっかり使ったらえらいことになりそうな...