我正在查看MvcContrib Grid的源代码,看到该类声明为:
public class Grid<T> : IGrid<T> where T : class
where T : class
是什么意思?
我正在查看MvcContrib Grid的源代码,看到该类声明为:
public class Grid<T> : IGrid<T> where T : class
where T : class
是什么意思?
public A<T> where T : AnInterface
这句话中的AnInterface
是一个接口类。这意味着T
必须实现这个接口。
这些限制非常重要,这样编译器才能知道该类型可用的操作。例如,如果不告诉编译器该类型所提供的函数,就无法调用T
的函数。
来自文档http://msdn.microsoft.com/en-us/library/d5x73970.aspx
其中T:class
类型参数必须是引用类型,这也适用于任何类、接口、委托或数组类型。
这是一个关于类型参数的限制条件,它说明T只能是类或接口,不能是枚举或结构体。因此,T必须是引用类型而不是值类型。
祝好!
Oliver Hanappi
当客户端代码实例化您的类时,可以对可用于类型参数的类型种类应用限制,这被称为类型参数约束。
例如:where T : class
在这里,T
是类型,类型参数必须是引用类型。这也适用于任何类、接口、委托或数组类型。
这是一种通用类型约束。它指定类型 T
必须是引用类型,即类而不是结构体。