我有一个继承自ObservableCollection<T>
的类以重用INotifyCollection
功能,但其行为类似于HashSet
。我称之为ObservableHashSet<T>
。我在我的应用中同时使用ObservableCollection
和ObservableHashSet
。
我已经达到了将ObservableCollection
或ObservableHashSet
传递给方法的程度,但我感兴趣的唯一功能是IEnumerable<T>
和{{ 1}}。
我的问题是:是否可以使用单个方法作为这些类的参数?即。
INotifyCollectionChanged
我正在使用.NET 4,以防有任何有用的功能......
答案 0 :(得分:4)
如果您继承自ObservableCollection
,那么使用它作为参数类型应该有效。
答案 1 :(得分:3)
我找到了一个很好的解决方案,使用泛型方法并使用我需要的两个接口约束type参数:
public void MyMethod<T>(T collection) where T : IEnumerable<IExample>, INotifyCollectionChanged
{
}
这似乎很好地解决了这个问题。我欢迎任何关于这样做的评论:)