C#和/或ASP.NET Class where子句?

我真的不知道这是C#还是asp.net的东西。我正在看这篇文章:http://huyrua.wordpress.com/2010/07/13/entity-framework-4-poco-repository-and-specification-pattern/并遇到这一行:
public class GenericRepository<TEntity> : IRepository<TEntity> where TEntity : class
我是C#/ ASP.NET的新手,所以我不完全理解这一行。 “TEntity:class”的作用是什么?我从来没有用“where子句”创建一个类(即使是它所谓的)。     
已邀请:
它使用泛型(C#,与ASP.NET无关)。
<TEntity>
是泛型类型参数,这意味着您必须指定GenericRepository的类型。 像这样:
var repo = new GenericRepository<Person>();
where子句表示您提供的类型必须是类。 它被称为派生约束。它基本上告诉编译器强制执行此约束。 如果您将其更改为
where TEntity : int
,则上述代码将失败。 你需要这个:
var repo = new GenericRepository<int>();
关于
<TEntity>
的注释,这不是关键字/保留字。您可以轻松将其更改为
<FooBar>
where FooBar : class
。它具有指示泛型的T,以及指定存储库工作的实体。 将泛型类型参数更改为对您和您的代码有意义的参数。 顺便说一下 - 那篇文章就像我的圣经一样。 :)     

要回复问题请先登录注册