阅读一本书:NHibernate 3: 入门指南,我发现了一个让我感到好奇的片段:
动手实践——创建基础实体
(...)
- 在项目的 Domain 文件夹中添加一个新类,并将其命名为 Entity。将该类声明为抽象类并使用 T 泛型。你的代码应该与以下代码片段类似:
using System;
namespace OrderingSystem.Domain
{
public abstract class Entity<T> where T : Entity<T>
{ }
}
我的问题是:片段where T : Entity<T>
的意义是什么?
我知道where
部分可以用来添加类型约束,但上面的代码看起来似乎永远不可能实例化这样的类(即使它本来就是抽象的)。