C# 在C语言中,带有“where”

C# 在C语言中,带有“where”,c#,generics,C#,Generics,任何人请详细解释以下代码: internal class InternalClientProxy<TInterface> : ClientBase<TInterface> where TInterface : class 它是泛型类型约束。在这种情况下 where T : class 表示T应该是引用类型 有关约束的详细信息,请参见此处:,这意味着您只能在InternalClientProxy中使用引用类型 一些有助于更好理解的有用链接 要跟进我的评论,请

任何人请详细解释以下代码:

internal class InternalClientProxy<TInterface> : 
    ClientBase<TInterface> where TInterface : class

它是泛型类型约束。在这种情况下

where T : class
表示T应该是引用类型


有关约束的详细信息,请参见此处:

,这意味着您只能在InternalClientProxy中使用引用类型

一些有助于更好理解的有用链接


要跟进我的评论,请解释语法

类型参数约束C编程指南

定义泛型类时,可以对客户端代码在实例化类时可用于类型参数的类型应用限制。如果客户机代码试图使用约束不允许的类型实例化类,则结果是编译时错误。这些限制称为约束。通过使用where上下文关键字指定约束。下表列出了六种类型的约束:

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


如果没有该约束,则泛型代码的行为可能会有所不同,具体取决于TInterface是表示值还是表示引用类型。

没有解释它吗?请说明具体不清楚的内容。只是在哪里使用?如果不清楚,其他人将无法提供帮助