泛型中Where T:Class和Where T:new()的使用与区别
Posted 薄心之心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型中Where T:Class和Where T:new()的使用与区别相关的知识,希望对你有一定的参考价值。
如下是泛型常用的写法:
class A<T> where T:new()
这是类型参数约束,其中where表示对类型变量T的约束关系。
其中,最常用的当属class和new()两种约束。泛型可以是值类型也可以是引用类型,class表示这个T为引用类型,new()表示这个泛型必须有构造函数否则不能使用。
除了class和new()之外,还有其他的约束关系。.NET支持的类型参数约束有以下五种:
where T: class // T必须是一个类(class)类型,不是结构(structure)类型 where T: new() // T必须要有一个无参构造函数 where T: struct // T必须是一个结构类型 where T: NameOfBaseClass // T必须继承名为NameOfBaseClass的类 where T: NameOfInterface // T必须实现名为NameOfInterface的接口
以上是关于泛型中Where T:Class和Where T:new()的使用与区别的主要内容,如果未能解决你的问题,请参考以下文章
关于C#中泛型类型参数约束(where T : class)