每次当程序在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