我正在使用 MVVM 构建一个 WPF 应用程序,并且正在使用 ObservableCollection。在我的 ViewModel 上工作时,我决定检查 ObservableCollection 的类型定义,我看到了一些我认为很奇怪的东西:
// class definition for ObservableCollection
ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
// derives from Collection<T>
...
// class definition for Collection<T>
Collection<T> : IList<T>, ICollection<T>, IEnumerable<T> ... (as well as non-generics)
现在,问题来了:
If ICollection<T> implements IEnumerable<T>
AND
IList<T> implements ICollection<T> AS WELL AS IEnumerable<T>
...
...
Why does Collection<T> implement ALL THREE?
这真的是它的实现方式还是这个 VS2010 对我耍花招?