在这行代码中,我们到底在告诉编译器什么?
public abstract class RepositoryBase<T> where T:class
我们是说当我们创建一个继承自的对象时RepositoryBase
,该对象必须在构造函数中取一个类,否则会出现编译错误?
就是说,当你从 继承时RepositoryBase<T>
,你指定的类型T
必须是某种类型的类(或接口等,但不是值类型)。例如RepositoryBase<int>
是非法的并且不会编译:请参阅类型参数的约束(C# 编程指南)。