我有以下幾點:在基類中使用一個覆蓋的屬性
class Info
{
public string str;
};
class CarInfo : Info {}
class InfoContainer
{
public virtual List<Info> info_list {get; set;}
public bool is_known(Info inf)
{
if (-1 == info_list.FindIndex(i => i.str == inf.str) return false;
return true;
}
}
class CarFleetInfo : InfoContainer
{
new public List<CarInfo> info_list;
CarFleetInfo()
{
info_list = new List<CarInfo>();
}
}
Main()
{
CarInfo c = new CarInfo();
Info i = new Info();
c.is_known(i);
}
我有一個從Info
繼承(如CarInfo
)其他一些「特定信息」級,並從InfoContainer
繼承幾類,這是每個覆蓋info_list
與其他一些「具體信息」的對象列表。
現在,撥打c.is_known(i)
的電話會引發異常,說info_list
爲空。
您的代碼無效,以開始。您無法聲明虛擬字段。 –
你說得對。它假設是一個財產。 –
和子類中的那個?請注意,即使你創建了一個屬性,它也不會重載基類,因爲你使用'new'而不是'override'。 –