Fühlen Sie sich frei, Ihre Waffen zu laden und zielen, aber ich möchte verstehen, warum Sie das nicht tun sollten.Benutzerdefiniert (abgeleitet) Liste <T>
ich eine benutzerdefinierte Klasse erstellt haben, entworfen alle Instanzen von Liste zu ersetzen (was ich zu aktualisieren XML-Objekte hinter ihnen verwenden, um):
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));
}
}
}
Die Idee ist, wenn ich einen Artikel aus dieser Liste hinzuzufügen oder entfernen meine gebundene Ereignisse werden ausgelöst und ich kann automatisch mit dem XML-Code umgehen.
Das funktioniert wie ein Zauber, so weit so gut.
Aber wie handhabe ich eine Konvertierung zwischen object.ToList() und meiner abgeleiteten Version?
Viele Leute sagen, dass Sie stattdessen von Collection ableiten sollten ... warum?
Haben Sie von ObservableCollection gehört? http://msdn.microsoft.com/en-au/library/ms668604(v=vs.110).aspx und http://stackoverflow.com/questions/3167752/is-there-a-way-to-convert -an-observable-collection-to-a-list – Aybe
Ich benutze Windows Forms .Net 3.5 – user1830285
Die Verwendung des 'new' Modifizierers zum Verstecken von Mitgliedern aus der Basisklasse ist nie eine gute Idee. Wenn Sie wirklich von 'List <>' ableiten möchten, geben Sie Ihren Methoden einige neue Namen, wie 'AddAndRaiseEvent' oder ähnliches. Allerdings ist 'List <>' class nicht wirklich für diesen Zweck gedacht. Es gibt andere Klassen, die mehr 'virtuelle' Mitglieder anbieten, die hilfreich sein sollen, wenn sie sie erben. –