gpt4 book ai didi

c# - 在 C# 中实例化一个动态类型

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:11 24 4
gpt4 key购买 nike

我有一个 Animal 类和两个派生类:LionAnt

我有一个接受 Animal 类型的方法,我想返回传递给函数的动物派生类型的新实例(即 Lion< 的新实例)。

public Animal Reproduce(Animal p_animal)
{
Type animalType = p_animal.GetType();

if (SameSpecies(p_animal))
return new animalType(RandomName());
}

最佳答案

有几种方法可以实现这一点,但我建议您在 Animal 类上创建一个抽象的 Reproduce 方法,并在派生类型中实现它。例如:

public abstract class Animal
{
/* .. other stuff .. */
public abstract Animal Reproduce();
public string RandomName() { /* ... */ }
}

public class Lion : Animal
{
/*... other stuff .. */
public override Animal Reproduce() => new Lion(RandomName());
}

这样你就可以在特定于某个AnimalReproduce方法中添加任何 future 的逻辑

关于c# - 在 C# 中实例化一个动态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53159294/

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