C# 参考基类(未密封)以创建密封类的集合

C# 参考基类(未密封)以创建密封类的集合,c#,c++-cx,C#,C++ Cx,我有一个未密封的基本C++/cx类。我有一堆从基类继承的类,它们是密封的。我想知道如何在C#中引用基本的非密封类,以便创建密封类的C#集合 C++/cx: ref class ConcreteClass sealed : AbstractBaseClass (a.k.a not sealed) C#: 公共静态可观测集合MyObjectCollection; C++/CX将不允许您拥有公共的非密封类,除非它是XAML类型(基于DependencyObject——这可能是您不想做的) 简单的解决

我有一个未密封的基本C++/cx类。我有一堆从基类继承的类,它们是密封的。我想知道如何在C#中引用基本的非密封类,以便创建密封类的C#集合

C++/cx:

ref class ConcreteClass sealed : AbstractBaseClass (a.k.a not sealed)
C#:

公共静态可观测集合MyObjectCollection;

C++/CX将不允许您拥有公共的非密封类,除非它是XAML类型(基于
DependencyObject
——这可能是您不想做的)


简单的解决方案是将您的
AbstractBaseClass
公开为公共接口,然后C#将能够使用它并创建接口类型的集合(您可以在其中存储具体的类)。

这有什么关系?造成(或允许)什么问题?抽象类是唯一的公共基类,因此从面向对象的角度来看,不,没有办法表明集合只包含密封类型。问题是我无法创建类型为
基类的C#集合。例如,我有一个基类
fruit
,希望有一个我所有水果的集合<代码>香蕉
苹果
等。。。不知道为什么它不让我这么做。什么是错误或警告?当我成功编译并尝试在我的C代码中引用它时,它没有出现。
它没有出现
这是什么意思?
public static ObservableCollection<AbstractBaseClass> MyObjectCollection;