我有一个 Fleet 类,其中包含一个 (基类) Vehicles 数组。数组中的车辆是 Vehicles 的子类:Plains、Trains 和 Automobiles。该数组是私有的,但 Fleet 类必须提供一种方法来获取给定类型的车辆。
大致如下:
class Fleet
{
private Vehicle[] _vehicles;
// returns the vehicles of the specified subclass
public ???? Get(????)
{
return ????
}
}
Fleet fleet = new Fleet("fleet.def");
Trains[] trains = fleet.Get(Trains); // looks clean but isn't possible
Plains[] plains = fleet.Get<Plains>(); // looks okay but don't know
// how to implement
我正在使用数组,但实际上任何可迭代的集合类型都可以。现在,正如您所看到的,我完全不知道如何实现这一点。我正在寻找一个优雅的解决方案来实现Get方法,效率并不是真正的问题。请在解决方案中命名涉及的关键技术,以便我可以在我的C#书籍中查找它们...谢谢!