9

この MSDN の記事を見た後、コレクションをObservableCollection. これの間に大きな違いはありますか:

class MyCollection : ObservableCollection<MyObject> { }

class Class1
{
    private MyCollection _newCollection = new MyCollection();

    public Class1()
    {
        _newCollection.Add(new MyObject());
    }
}

この:

class Class1
{
    private ObservableCollection<MyObject> _newCollection = new ObservableCollection<MyObject>();

    public Class1()
    {
        _newCollection.Add(new MyObject());
    }
}

ここで見落としているものはありますか?

4

3 に答える 3

2

この例は、継承の適切な使用法とはほど遠いものであり、その特定のクラスへの追加はほとんどまたはまったくありません。

通常、便利な機能を提供するが、それ以上の機能が必要な場合は、他のクラスと同じ方法でサブクラス化することを考えることができます。たとえば、挿入時に特定のアクションを実行したり、特別な処理を行ったり、追加のインターフェイスを実装したり、別の通知を実装したりしたい場合は、必要に応じて継承し、メンバーをオーバーライド/追加します。

実用的な例は、WPF Caliburn.Microの MVVM フレームワークで行われます。ここではBindableCollection<T>、から継承しObservableCollection<T>、変更の通知に加えてスレッド UI マーシャリングを実行します。

于 2013-07-26T00:40:13.947 に答える