3

MVC.Net用の再利用可能なグリッドを探していました。オープンソースのグリッドが1つ見つかりました。

コードの中で、私が理解していなかった非常に興味深いクラス宣言を見つけました。以下のクラス宣言の詳細な説明を教えてもらえますか?

public class Grid<TEntity, TSearchForm> : IGrid where  TSearchForm : SearchForm, new()
{
}

また、このクラスのインスタンスを作成するにはどうすればよいですか?

4

3 に答える 3

6
  • グリッドクラスはIGridsインターフェイスを実装します。
  • TSearchFormTypeはSearchFormタイプである必要があります(派生による)
  • TSeachFormには、パラメーターのないコンストラクターが必要です
于 2012-11-29T13:25:24.973 に答える
6

これは、TEntity、TSearchFormの2つのパラメーターを持つIGridから継承されたジェネリッククラスです。

また、TSearchFormのタイプにも制約があります。

  1. タイプがSearchFormであるか、階層内でその下にある必要があります(SearchFormに暗黙的にキャストできます)

  2. TSearchFormには、パブリックパラメーターなしのコンストラクターが必要です。

より詳しい情報:

ここで(ジェネリック型制約 new Constraint

于 2012-11-29T13:30:08.363 に答える
5

このクラスはジェネリッククラスであり、を実装しIGridます。

TEntity2つの 汎用タイプパラメータはとTSearchFormです。

TSearchFormSearchFormから継承する型または型に制約されSearchForm、デフォルトのコンストラクターがあります。

推奨読書:

于 2012-11-29T13:26:10.527 に答える