gpt4 book ai didi

c# - new() 在 `where T: new()?` 中做了什么

转载 作者:可可西里 更新时间:2023-11-01 07:50:06 24 4
gpt4 key购买 nike

下面代码中的 new() 做了什么?

public class A<T> where T : B, new()

最佳答案

这是对您的类的泛型参数的约束,这意味着作为泛型类型传递的任何类型都必须具有无参数构造函数。

所以,

public class C : B
{
public C() {}
}

将是一个有效的类型。您可以创建 A<C> 的新实例.

但是,

public class D : B
{
public D(int something) {}
}

将不满足约束条件,并且不允许您创建 A<D> 的新实例.如果您还向 D 添加了一个无参数构造函数,那么它将再次有效。

关于c# - new() 在 `where T: new()?` 中做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1085434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com