• AI创作!更聪明、更完整、原创作!
  • 一款基于BingBot的超级AI机器人,问答、聊天、创作、写文案,更高效便捷的获取信息、知识和灵感!
🔥点击使用 - AI问答专业版

设计一个水果篮子(FruitBasket),里面至多可装N个水果,水果种类≧2,且均派生自同一基类。使用接口IEnumerable和IEnumerator实现装入水果及遍历水果的过程

时间2023-10-18 15:05:27 提问来自 四川成都市 的网友 分类AI文字 浏览179 热度0
根据您的需求,我可以帮您设计一个水果篮子(FruitBasket)类,该类可以装入不同种类的水果,并使用接口IEnumerable和IEnumerator实现遍历水果的功能。下面是一个示例代码: ```csharp using System; using System.Collections; using System.Collections.Generic; // 定义水果基类 public abstract class Fruit { public string Name { get; set; } } // 定义苹果类 public class Apple : Fruit { public Apple() { Name = "Apple"; } } // 定义梨子类 public class Pear : Fruit { public Pear() { Name = "Pear"; } } // 定义水果篮子类 public class FruitBasket : IEnumerable<Fruit> { private List<Fruit> fruits; public FruitBasket() { fruits = new List<Fruit>(); } // 添加水果到篮子中 public void AddFruit(Fruit fruit) { fruits.Add(fruit); } // 实现IEnumerable接口的GetEnumerator方法 public IEnumerator<Fruit> GetEnumerator() { return fruits.GetEnumerator(); } // 实现IEnumerable接口的GetEnumerator方法(非泛型版本) IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } class Program { static void Main(string[] args) { FruitBasket basket = new FruitBasket(); // 向篮子中添加苹果和梨子 basket.AddFruit(new Apple()); basket.AddFruit(new Pear()); // 遍历篮子中的水果 foreach (Fruit fruit in basket) { Console.WriteLine(fruit.Name); } } } ``` 在上述示例代码中,我们定义了一个抽象的水果基类(Fruit),并派生出苹果类(Apple)和梨子类(Pear)。然后,我们创建了一个水果篮子类(FruitBasket),该类使用List来存储水果,并实现了IEnumerable泛型接口。通过在篮子中添加水果和使用foreach循环遍历,可以实现对水果篮子中水果的装入和遍历过程。 请注意,示例代码中的AddFruit方法只允许添加继承自Fruit基类的水果对象,确保水果篮子里的水果种类均派生自同一基类。

内容创作(普通版)

内容创作(高级版)

AI智能问答网 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用创作工场,更聪明、更完整、更原创!

上一篇 学校如何建设药王山的意义有哪些 下一篇 毕业论文以政府审计对国有企业esg表现的影响研究为题的可行性