要编程实现一个手工制作水果栏(FruitBasket),你需要遵循以下步骤:
设计基类和派生类
创建一个基类 `Fruit`,包含水果的基本属性,如名称。
创建一个派生类 `FruitBasket`,实现 `IEnumerable` 和 `IEnumerator` 接口,用于管理水果的添加和遍历。
实现 `Fruit` 类
```csharp
public class Fruit
{
public string Name { get; set; }
public Fruit(string name)
{
Name = name;
}
}
```
实现 `FruitBasket` 类
```csharp
using System.Collections;
using System.Collections.Generic;
public class FruitBasket : IEnumerable { private List private int capacity; public FruitBasket(int capacity) { this.capacity = capacity; } public void AddFruit(Fruit fruit) { if (fruits.Count < capacity) { fruits.Add(fruit); } else { Console.WriteLine("篮子已满,无法再添加水果"); } } public IEnumerator { return fruits.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } ``` ```csharp class Program { static void Main(string[] args) { FruitBasket basket = new FruitBasket(3); basket.AddFruit(new Fruit("苹果")); basket.AddFruit(new Fruit("香蕉")); basket.AddFruit(new Fruit("橙子")); foreach (Fruit fruit in basket) { Console.WriteLine(fruit.Name); } } } ``` 建议 扩展性:你可以考虑在 `FruitBasket` 类中添加更多功能,例如删除水果、查找特定水果等。 错误处理:在实际应用中,你可能需要更复杂的错误处理和输入验证。 用户界面:如果这是一个桌面应用程序,你可以考虑添加一个用户界面来让用户更直观地添加和查看水果。 通过以上步骤,你可以创建一个简单的手工制作水果栏程序,并可以根据需要进行扩展和优化。使用 `FruitBasket` 类