はジェネリックの型の安全性を取得したときにジェネリックを使用しない
public class MyVehicleCollection<T> where T : Vehicle
{
private List<T> listofVehicles = new List<T>();
public void AddVehicle(T v) { listofVehicles.Add(v); }
}
と
public class MyVehicleCollection<Vehicle>
{
private List<Vehicle> listofVehicles = new List<Vehicle>();
public void AddVehicle(Vehicle v) { listofVehicles.Add(v); }
}
の違いについては不明だ
私は表示されない理由は、両方のケースで、唯一の可能性Vehicleから派生した型をコレクションに追加します。なぜ私はMotobikeを格納するための追加のコレクションクラスを作成する必要があるのかわかりません。
事前に感謝します。あなたの第二の形式が全く車両にバインドされていない
将来的に必要または期待されない拡張性をトレードします。確かにあなたは将来的に自転車を追加することができますが、あなたはそれをやろうとしていますか?未来に応じて、クローズドまたはオープンなアーキテクチャを作成できます。 – CodingBarfield
ジェネリック型パラメータとクラス名の両方で 'Vehicle'を使用しているという混乱が原因です。 –