Możesz załadować broń i celować, ale chcę zrozumieć, dlaczego nie powinieneś tego robić.Lista niestandardowa (pochodna) <T>
Stworzyłem klasę niestandardową zaprojektowany aby zastąpić wszystkie wystąpienia List (który używam aktualizacji obiektów XML za nimi):
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));
}
}
}
Chodzi o to, kiedy tylko dodać lub usunąć element z tej listy mój powiązane zdarzenia zostaną uruchomione i automatycznie zajmie się XML.
To działa jak czar, na razie tak dobrze.
Ale jak obsługiwać konwersję między object.ToList() i mojej wersji pochodnej?
Wiele osób twierdzi, że powinieneś czerpać z kolekcji zamiast ... dlaczego?
Czy słyszałeś o ObservableCollection? http://msdn.microsoft.com/en-au/library/ms668604(v=vs.110).aspx i http://stackoverflow.com/questions/3167752/is-there-a-way-to-convert -an-obserwowalne-kolekcja-do-listy – Aybe
Używam Windows Forms .Net 3.5 – user1830285
Używanie modyfikatora 'new' do ukrywania członków z klasy bazowej nigdy nie jest dobrym pomysłem. Jeśli naprawdę chcesz wywodzić się z 'List <>', podaj swoim metodom nowe nazwy, takie jak 'AddAndRaiseEvent' lub podobne. Jednak klasa 'List <>' nie jest przeznaczona do tego celu. Istnieją inne klasy, które oferują więcej "wirtualnych" członków, które mają być pomocne przy ich dziedziczeniu. –