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

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

时间2023-10-18 16:04:29 提问来自 广东广州市 的网友 分类AI文字 浏览336 热度0
下面是使用C#设计一个水果篮子(FruitBasket)的代码示例,其中使用了接口IEnumerable和IEnumerator实现了水果的装入和遍历过程。 ```csharp using System; using System.Collections; using System.Collections.Generic; // 定义水果的基类 public class Fruit { public string Name { get; set; } } // 派生自水果基类的苹果类 public class Apple : Fruit { public Apple() { Name = "Apple"; } } // 派生自水果基类的香蕉类 public class Banana : Fruit { public Banana() { Name = "Banana"; } } // 水果篮子类 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() { foreach (var fruit in fruits) { yield return fruit; } } // 实现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 Banana()); // 使用foreach遍历篮子中的水果 foreach (var fruit in basket) { Console.WriteLine(fruit.Name); } } } ``` 以上是一个简单的使用C#设计水果篮子的示例。其中,FruitBasket类实现了接口IEnumerable<T>,并通过实现GetEnumerator方法,使得该类的对象可以使用foreach语句进行遍历操作。在Main函数中,创建了一个水果篮子对象,并向篮子中添加了苹果和香蕉两种水果,然后使用foreach循环遍历篮子中的水果并输出它们的名称。 希望对你有帮助!如有更多问题,请随时提问。

内容创作(普通版)

内容创作(高级版)

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

上一篇 three ways in which organization culture can be transmitted to employees 下一篇 毕业论文以政府审计对国有企业esg表现的影响研究为题的可行性