C# “关键字”是什么;其中;在类声明中做什么?

C# “关键字”是什么;其中;在类声明中做什么?,c#,C#,我正在查看MvcContrib网格的源代码,并看到该类声明为: public class Grid<T> : IGrid<T> where T : class 公共类网格:IGrid,其中T:class 其中T:class位做什么?它是一个 在这种情况下,它意味着泛型类型(T)必须是引用类型,即类、接口、委托或数组类型 列出了其他约束条件 您还可以将泛型类型限制为从特定类型(基类或接口)继承。它将T限制为从文档继承。 T:在哪里上课 类型参数必须是引用类型;这也适用于

我正在查看MvcContrib网格的源代码,并看到该类声明为:

public class Grid<T> : IGrid<T> where T : class
公共类网格:IGrid,其中T:class
其中T:class
位做什么?

它是一个

在这种情况下,它意味着泛型类型(
T
)必须是引用类型,即类、接口、委托或数组类型

列出了其他约束条件

您还可以将泛型类型限制为从特定类型(基类或接口)继承。

它将T限制为从文档继承。

T:在哪里上课


类型参数必须是引用类型;这也适用于任何类、接口、委托或数组类型

public A<T> where T : AnInterface
public A其中T:A接口
其中,
接口
是一个接口类。这意味着,
T
必须实现这个接口


这些约束很重要,因此编译器知道对该类型有效的操作。例如,如果不告诉编译器类型提供了什么函数,就不能调用
T
的函数。

这是对类型参数的一个约束,表示T可以是类或接口,但不能是枚举或结构。所以T必须是引用类型,而不是值类型

致以最诚挚的问候,

Oliver Hanappi

当客户机代码将类实例化为类时,可以对类型参数使用的类型应用限制

例如:where T:class


这里,
T
是类型,类型参数必须是引用类型;这也适用于任何类、接口、委托或数组类型。

这是一个泛型类型约束。它指定类型
T
必须是引用类型,即类而不是结构。

可能重复@Jon Seigel-肯定不是该问题的重复。不,它与从对象派生无关。例如,它可以是接口或委托。