gpt4 book ai didi

c#类工厂新手

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:20 25 4
gpt4 key购买 nike

对于我正在寻找的东西,这可能是错误的标题,但我认为它归结为类工厂。

我有三个类(class):

   class Horse : Animal
class Cow : Animal

我想在 Animal 中创建一个伪代码的方法,其工作方式如下:

   List<Horse or Cow> (Animal horseOrCow)
{
if (horseOrCow is of type Horse)
return a list of 10 Horse objects;
else
return a list of 10 Cow objects;
}

当然是一种简化,但一旦我掌握了如何做到这一点,我就应该能够弄清楚其余部分。

(编辑:错别字已修复)。

最佳答案

您可以使用 is -operatorEnumerable.OfType + Enumerable.Take :

public List<Animal> getMammals(Mammal horseOrCow)
{
if (horseOrCow is Horse)
return allAnimals.OfType<Horse>().Take(10).Cast<Animal>().ToList();
else if (horseOrCow is Cow)
return allAnimals.OfType<Cow>().Take(10).Cast<Animal>().ToList();
else
throw new ArgumentException("Invalid Mammal", "horseOrCow");
}

假设有一个 List<Animal> allAnimals某处。

编辑:Mammal也必须是 AnimalHorseCowMammals他们应该继承它。

class Horse : Mammal{ }
class Cow : Mammal { }
class Animal { }
class Mammal : Animal { }

关于c#类工厂新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601744/

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