匿名型と匿名メソッド・ラムダ式に見るVBとC#の違い

匿名型

VBの場合

・keyキーワードを設定したプロパティのみEquals,HashCode生成時の対象プロパティとなる

・keyキーワードを設定したプロパティの値の代入は初期化時のみ

・keyキーワードが設定されていないプロパティは後から値の代入が可能

C#の場合

・後から値の代入が不可能

・全てのプロパティがVBでいうところのkeyキーワードを設定した状態となっている

匿名メソッド・ラムダ式

VBの場合

・式のみ実装可能

・コードブロックの実装は不可なので通常のメソッドを実装するようにはできない

C#の場合

・式の実装もコードブロックの実装も可能なので通常のメソッドを実装するのと同じだけの事が可能

匿名型を利用して複数の自動変数の関連付けをしたい時があって、そんなときはVBの仕様が嬉しい。

その半面、メソッドアウトしたいがスコープは元のメソッド内に留めたい時があって、そんなときはC#の仕様が嬉しい。

Share
カテゴリー: .NET