是否可以组合两个接口并将类型组合成类?

时间:2010-07-07 08:25:24

标签: c#

我有一个继承自ObservableCollection<T>的类以重用INotifyCollection功能,但其行为类似于HashSet。我称之为ObservableHashSet<T>。我在我的应用中同时使用ObservableCollectionObservableHashSet

我已经达到了将ObservableCollectionObservableHashSet传递给方法的程度,但我感兴趣的唯一功能是IEnumerable<T>和{{ 1}}。

我的问题是:是否可以使用单个方法作为这些类的参数?即。

INotifyCollectionChanged

我正在使用.NET 4,以防有任何有用的功能......

2 个答案:

答案 0 :(得分:4)

如果您继承自ObservableCollection,那么使用它作为参数类型应该有效。

答案 1 :(得分:3)

我找到了一个很好的解决方案,使用泛型方法并使用我需要的两个接口约束type参数:

public void MyMethod<T>(T collection) where T : IEnumerable<IExample>, INotifyCollectionChanged
{
}

这似乎很好地解决了这个问题。我欢迎任何关于这样做的评论:)