如果我有以下代碼並想迭代車輛列表並顯示價格,我該如何訪問該財產?如何從列表中訪問財產
public class Vehicle
{
public string Name { get; set; }
public string Price { get; set; }
}
public class ElectricalDriven : Vehicle
{
public string SuperChargerCord { get; set; }
}
public class GasolinDriven : Vehicle
{
public string GasolineTank { get; set; }
}
var myListOfVechicles = new List<Vehicle>();
myListOfVechicles.Add(new ElectricalDriven { Name = "Tesla", Price = "100 000", SuperChargerCord = "Yellow cord"});
myListOfVechicles.Add(new GasolinDriven { Name = "Ford", Price = "50 000", GasolineTank = "Large VZ Tank"});
foreach (var row in myListOfVechicles)
{
Console.WriteLine($"- {row.Name}");
}
爲什麼'價格'定義在'Vechicle'?您可以創建一個暴露'Price'的接口並將其作爲該接口類型的列表,但需要更多的上下文來確定這是否可接受。或者,您可以轉換爲「動態」並依賴運行時檢查。 – juharr
我知道這不是一個答案,但可能你問這個,因爲設計可以有另一個旋轉。可能你希望有一個「有價值的車輛」類,並在那裏定義財產。 – mekoda
在實際使用中,對於「ElectricalDriven」和「GasolinDriven」類將會有不同的屬性,這就是爲什麼...... – MTplus