每次當程序在List中添加一個新Item時,我都會通知用戶。來自Collection的C#覆蓋方法<T>
我這樣做:
public class ListDemo<T> : Collection<T>
{
protected override void InsertItem(int index, T item)
{
Console.WriteLine("YOU HAVE INSERTED AN ITEM");
base.InsertItem(index, item);
}
}
我可以從界面的IList繼承ListDemo,但我不希望實現此接口的所有方法。所以我從繼承收藏
現在,我有我的代碼的兩個問題:
1°我必須通過事件通知用戶嗎?或者我的代碼很好?
2º如何調用覆蓋方法?像界面一樣?
// IT WORKS!
List<int> _list = new ListDemo<int>();
_list.Insert(0,2);
Console.WriteLine(_list[0]);
此代碼的工作,這對我來說是很奇怪的,因爲當你調用一個接口,你必須用這樣的方式:如果重寫方法就是爲什麼InsertItem
Collection<int> _list = new ListDemo<int>();
3°,然後當我從我的實例調用該方法時,這僅僅是插入。
哦,親愛的......我認爲你有很多關於你的閱讀,關於許多不同的話題(繼承,設計模式,用戶交互...)。我投票結束這個廣泛的問題,因爲你在這裏正式提出了三個問題,所以一個專注的答案不會是一個單一的答案,而是一個包含不同答案的多部分文本。 – grek40