泛型约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型约束相关的知识,希望对你有一定的参考价值。

约束说明

T:struct

类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。

T:class

类型参数必须是引用类型,包括任何类、接口、委托或数组类型。

T:new()

类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后指定。

T:<基类名>

类型参数必须是指定的基类或派生自指定的基类。

T:<接口名称>

类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。

T:U

为 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数。这称为裸类型约束.

 ---------------------------------------

以上是关于泛型约束的主要内容,如果未能解决你的问题,请参考以下文章

泛型编程类型约束与软件扩展性--面向可扩展的泛型编程就是面相类型约束编程

C#泛型方法,泛型约束问题

泛型约束

泛型约束

C# 泛型类型参数的约束

为啥泛型类型约束不可继承/分层强制执行