在C#编写泛型类或函数时,where : class, new()
和where : new()
之间有什么区别吗? new()
是否也暗示它也是class
?
据我所知this结构不能有无参数构造函数
答案 0 :(得分:4)
new()
是否也暗示它也是class
?
不,new()
只是意味着该类型具有公共默认构造函数。类和结构都可以有这样的构造函数。这两种约束都不会以任何方式暗示另一种。
据我所知,这个结构不能有无参数构造函数
该文档中的关键字是“显式”,即您在代码中声明的构造函数。默认构造函数是隐式无参数构造函数,它由编译器为没有显式构造函数定义(带或不带参数)的类型创建。
答案 1 :(得分:1)
通用类或方法的new()
约束意味着T
必须具有默认构造函数,但不关心T
是class
还是{{1} }}