C#中的类声明

Rah*_*put 3 c# generics class

我正在为MVC .Net搜索可重用的Grid.我找到了一个开源网格.

在代码中,我发现了一个非常有趣的类声明,我不明白.谁能告诉我下面的课堂声明的详细说明:

public class Grid<TEntity, TSearchForm> : IGrid where  TSearchForm : SearchForm, new()
{
}
Run Code Online (Sandbox Code Playgroud)

另外我如何创建这个类的实例?

Ale*_*exH 6

  • Grid类实现了IGrids接口.
  • TSearchFormType必须是SearchForm类型(通过派生)
  • TSeachForm必须有一个没有参数的构造函数


Ser*_*eyS 6

这是从IGrid继承的泛型类,有两个参数:TEntity,TSearchForm.

还有一个TSearchForm类型的约束:

  1. 它必须是SearchForm类型或在层次结构中低于它(能够隐式地转换为SearchForm)

  2. TSearchForm必须具有公共无参数构造函数.

更多信息:

where(泛型类型约束 新约束

  • 不,这是一个通用类声明(http://msdn.microsoft.com/en-us/library/sz6zd40f(v=vs.100).aspx).您可以在其中使用TEntity,TSearchForm类型. (2认同)

Ode*_*ded 5

该类是一个泛型类,它实现IGrid.

两个泛型类型参数是TEntityTSearchForm.

TSearchForm被约束为SearchForm或继承自的类型,SearchForm并且它具有默认构造函数.

建议阅读: