代码之家  ›  专栏  ›  技术社区  ›  Geoff

是否可以组合两个接口,并将一个类放入组合中?

c#
  •  2
  • Geoff  · 技术社区  · 14 年前

    我有一个继承自 ObservableCollection<T> 重新使用 INotifyCollection 功能,但像 HashSet . 我已经叫它了 ObservableHashSet<T> . 我两者都用 ObservableCollection ObservableHashSet 在我的应用程序中。

    可观测集合 可观察灰烬集 但我唯一感兴趣的功能是 IEnumerable<T> INotifyCollectionChanged .

    我的问题是:有没有可能有一个方法将这些类中的任何一个作为其参数?即

    ObservableCollection<IExample> a = new ...
    ObservableHashSet<IExample> b = new ...
    MyMethod(a);
    MyMethod(b);
    

    2 回复  |  直到 14 年前
        1
  •  4
  •   Dan Puzey    14 年前

    如果你继承了 ObservableCollection 然后使用它作为参数类型应该是可行的。

        2
  •  3
  •   Geoff    14 年前

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

    这似乎做得很好。不过,我欢迎大家对这样做的评论:)