Po przejrzeniu this MSDN article, zastanawiam się teraz, jaką korzyścią jest zdefiniowanie kolekcji jako klasy dziedziczącej po ObservableCollection
. Czy są jakieś znaczące różnice między tym:Kolekcja dziedzicząca z ObservableCollection - Jakie są korzyści?
class MyCollection : ObservableCollection<MyObject> { }
class Class1
{
private MyCollection _newCollection = new MyCollection();
public Class1()
{
_newCollection.Add(new MyObject());
}
}
i tak:
class Class1
{
private ObservableCollection<MyObject> _newCollection = new ObservableCollection<MyObject>();
public Class1()
{
_newCollection.Add(new MyObject());
}
}
Czy coś mi wychodzi tutaj?
Jestem trochę zdezorientowany tym, o co pytasz. Jeśli potrzebujesz dodatkowej funkcjonalności, którą można dodać do ObservableCollection przez jej rozszerzenie, napisz klasę, która ją rozszerza. Jeśli nie, możesz po prostu użyć ObservableCollection. – TheEvilPenguin
Zgaduję, że w przypadku artykułu, na który patrzyłem, autor prawdopodobnie zrobił to w ten sposób ze względu na prostotę? –
Alternatywą do dziedziczenia z klasy ogólnej (aby konsumenci nie musieli cały czas podawać argumentów typu ogólnego) jest użycie aliasu typu, na przykład: 'using MyCollection = ObservableCollection;' (wadą jest to, że musisz określ to we wszystkich swoich plikach). –
Dai