任何人请详细解释以下代码:
internal class InternalClientProxy<TInterface> :
ClientBase<TInterface> where TInterface : class
答案 0 :(得分:1)
这是一种通用类型约束。在这种情况下
where T : class
表示T应该是引用类型。
有关约束的详细信息,请参阅此处:Constraints on Type Parameters (C# Programming Guide)
答案 1 :(得分:1)
答案 2 :(得分:1)
要跟进我的评论,documentation会解释语法。
类型参数的约束(C#编程指南)
定义泛型类时,可以对实例化类时客户端代码可用于类型参数的类型类型应用限制。如果客户端代码尝试使用约束不允许的类型来实例化您的类,则结果是编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束:
...
where T : class
type参数必须是引用类型;这也适用于任何类,接口,委托或数组类型。
没有约束,通用代码的行为可能会有所不同(除其他外),具体取决于TInterface
是表示值还是引用类型。