- 上原 正吉
- 株式会社アースリンクネットワーク
- Webプロデューサー
対象:システム開発・導入
- 清水 圭一
- (IT経営コンサルタント)
- 清水 圭一
- (IT経営コンサルタント)
C# 3.0 新機能一覧
C# 3.0になって新たに追加された機能をピックアップしてみましょう
暗黙的型付け
コンパイラが自動的に変数の型を推論し、変数に適切な型を設定してくれる機能です
JavaScriptのvarやVBのDimに似ていますが内部的な動作が違います。
拡張メソッド
既存のクラスにメソッドを追加できるようになります。
stringクラスなど標準ライブラリとして提供されているものにも設定可能です。
ラムダ式
ラムダ式(Lambda expressions)とはC# 2.0の匿名メソッドを専用のメソッドを別に定義することなく使用できるようにしたものです。
イニシャライザ(オブジェクト初期化子)
オブジェクト初期化子(Object initializer)
は、オブジェクトのインスタンスを生成すると同時に、プロパティ/メンバ変数の値を代入できるようにするしくみ。
匿名型
匿名型(Anonymous types)を使用すると、new 演算子を名前のないオブジェクト初期化子と共に使用できます。
匿名型は実際にはきわめて一時的なデータのみに有用です。
暗黙型付け配列
new で配列を作成する際 型を省略できるしくみです。
LINQ(Language Integrated Query)
LINQ(Language Integrated Query)
ちらほらと名前をみかけたことがあるかもしれませんが「リンク」と発音します。
C# 3.0の目玉はこれにつきると言っても過言ではありません。
データベースアクセスのための SQL 文を文字列を組み立てるのではなく、C#のコードとしてクエリを記述することが出来ます。
そのため、C#のコンパイラがクエリ構文を解釈するので、クエリの構文エラーはコンパイル時に検出されます。
クエリの対象はデータベースだけではなく、XML やコレクション(データーセット等)にまで及びます。
自動プロパティ
プロパティの getとset の中身を省略すると、コンパイラが自動的にコードを生成してくれます。
パーシャルメソッド(partial mothod)
パーシャルクラス内限定で、 メソッドに partial を付けることにより宣言と定義を分けれるというものです。 (private メソッドで、void 以外不可。)
C言語に似てますね。
コードジェネレーターなどの利用を想定しているようです。
まとめ
こうしてみると「便利」に使うための仕様が増えていることがわかります。
しかし、厳密に型指定されたC#になぜ型を崩すような仕様が追加されたのでしょうか。
答えは
式を一行で書ききるため
と私は考えています。
それはなぜかというと、「LINQ」の存在が大きいのではないでしょうか。
LINQによって、データーをSQLライクで使えるようになったはいいが、
宣言を別にしたりしていると折角のLINQのありがたみが半減してしまい、可読性も下がってしまう。
それでは意味がないので導入されたのが「LINQ」以外の機能だと思われます。
つまりC# 3.0は大雑把にいえば
C# 3.0 == LINQ
といっても過言ではないのです。
ただし、LINQを便利に使うために、追加された他の機能についても参照する必要があります。
次回はこの「LINQ」について説明し、
必要に応じてその他の説明も随時していきます。
☆QuickRec--メール・電話・FAXをお客様情報と一緒に全部まとめて一元管理
電話を自動録音することによりトラブルを未然に防ぎます
http://www.quickrec.com/
システム開発のご相談、ホームページ作成なら
アースリンクネットワークへ
http://www.eln.ne.jp