随意加载你的枪支并瞄准目标,但我想明白你为什么不应该这样做。自定义(派生)列表<T>
我创建了旨在替换表的任何实例(我用它来更新他们身后XML对象)的自定义类:
public class ListwAddRemove<T> : List<T> {
public event EventHandler<ListModifyEventArgs> OnAdd;
public event EventHandler<ListModifyEventArgs> OnRemove;
new public void Add(T o) {
base.Add(o);
if (OnAdd != null) {
OnAdd(this, new ListModifyEventArgs(o));
}
}
new public void Remove(T o) {
base.Remove(o);
if (OnRemove != null) {
OnRemove(this, new ListModifyEventArgs(o));
}
}
}
的想法是,每当我添加或从该列表中删除一个项目我绑定事件将触发,我可以自动处理XML。
这件作品像一个魅力,迄今为止非常好。
但是,如何处理object.ToList()和我的派生版本之间的转换?
很多人都说你应该从Collection中派生出来,为什么?
你听说过ObservableCollection吗? http://msdn.microsoft.com/en-au/library/ms668604(v=vs.110).aspx和http://stackoverflow.com/questions/3167752/is-there-a-way-to-convert -an-observable-collection-to-a-list – Aybe
我正在使用Windows Forms.Net 3.5 – user1830285
使用'new'修饰符从基类中隐藏成员绝不是一个好主意。如果你真的想从'List <>'派生,给你的方法一些新的名字,比如'AddAndRaiseEvent'或者类似的。然而,'List <>'类并不是真正用于这种用途。还有其他一些类提供了更多'虚拟'成员,这些成员在继承它们时会有所帮助。 –