2011-12-21 9 views
0

私はEntLibの機能 "データアクセスアプリケーションブロック"について研究しています。私はいくつかのコードを見つける:.NET Frameworkの新機能ですか?

public static class MapBuilder<TResult> where TResult : new() 
{ 
    //... 
} 

私は「どこTResult:新しい()」を使用している場合、このクラスの宣言の意味について理解していません。私はこれがクラスを宣言するための.NET Frameworkの新機能だと思います。この機能について説明するための文書やリンクを教えてください。ありがとう。

答えて

6

これはジェネリック型のパラメータ制約です。これは、.NET 2.0でジェネリックスが導入されて以来ずっと続いています。

Constraints on Type Parameters (MSDN)

あなたが言及した特定の制約は、公開パラメータなしのコンストラクタを持つクラスのみがタイプTResultとして使用できることを意味します。


も参照してください:Generics (MSDN)

1

where TResult : new()constraint on the genericタイプのパラメータ(TResult)を追加します。 type引数には、パラメータを持たないコンストラクタが必要です。

関連する問題