2017-11-27 10 views
1

封印されていないベースC++/cxクラスがあります。そして、私は密集しているその基本クラスから継承するクラスの束を持っています。私は、密閉されたクラスのC#コレクションを作成するために、C#の基本非密閉クラスをどのように参照するのだろうかと思います。封印されたクラスのコレクションを作成するために基本クラス(封印されていない)を参照してください

C++/CX:

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

C#:それはDependencyObjectに基づいてXAMLタイプ(ある場合を除き

public static ObservableCollection<AbstractBaseClass> MyObjectCollection; 
+0

なぜ重要ですか?どのような問題がそれを引き起こしているのですか?抽象クラスは唯一の共通基底クラスなので、オブジェクト指向の観点からは、コレクションに密封された型だけが含まれていることを示す方法はありません。 –

+0

問題は、 'base class'型のC#コレクションを作成できないことです。例えば、私は基本クラス 'fruit'を持っていて、すべての私の果物のコレクションを持っていたいと思います。 'バナナ'、 'リンゴ'など...なぜ私にこれをさせていないのか分かりません。 – visc

+2

エラーまたは警告は何ですか? – NetMage

答えて

1

C++/CXは、あなたが公共、非密封されたクラスを持たせません - おそらく何かがしたい)。

簡単な解決策は、AbstractBaseClassをパブリックインターフェイスとして公開してから、C#がそれを消費してインターフェイスタイプ(コンクリートクラスを格納できる)のコレクションを作成できるようにすることです。

関連する問題