gpt4 book ai didi

c# - 添加类型参数约束以防止抽象类

转载 作者:可可西里 更新时间:2023-11-01 08:37:44 31 4
gpt4 key购买 nike

是否可以将类型参数限制为抽象类的具体实现,如果这些实现没有默认构造函数?

例如,如果我有:

public abstract class Animal
{
private Animal()
{
}

public Animal(string name)
{
// ...
}

// ...
}


public class Penguin : Animal
{
// ...
}


public class Chimpanzee : Animal
{
// ...
}

我还有以下类(class):

public class ZooPen<T>
where T : Animal
{
// ...
}

我想允许 new ZooPen<Penguin>()new ZooPen<Chimpanzee>() , 但我想禁止 new ZooPen<Animal>() .

这可能吗?

最佳答案

您可以添加 new() 约束,这将要求该类不是抽象类并且具有默认构造函数。

关于c# - 添加类型参数约束以防止抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16796279/

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