-2

サードパーティのDLLが提供されました。

私は最初に次のようにオブジェクトを開始しようとしました:

TestClass MyClass = new TestClass();

しかし、VisualStudioはインターフェイスを使用するように指示します。

私はこれまでこれを行ったことがなく、どこから始めればよいのかわかりません。

エラー:

タイプ「MyClass.blabla」にはコンストラクターが定義されていません。Interopeタイプ「MyClass.Subclass」を埋め込むことはできません。代わりに、該当するインターフェースを使用してください。

4

3 に答える 3

2

これは、COMクラスを使用していることが原因である可能性があります。その場合は、次のように記述します。

ITest myTest = new TestClass();

COMラッパーは、。ITestという名前のCoClassを介してインターフェイスを公開することがよくありますTestClass。ただし、COMを使用する場合、(設計上)通常はインターフェイス(ITest)に対してのみ書き込みを行うため、実装に対して直接書き込みを行うことは望ましくありません。

于 2013-03-19T15:47:57.733 に答える
0

TestClassがどのように宣言されているかによって全体が異なります。TestClass の場合abstract、そのインスタンスを直接作成することはできません。代わりに、DerivedTestClass のクラスの 1 つからインスタンスを作成する必要があります。

TestClass test = new TestClassDerived();

どこ

class TestClassDerived : TestClass
{

}
于 2013-03-19T15:45:48.380 に答える
0

ある種の初期化メソッドを提供するか、コンストラクターとして渡される可能性があります。しようとしている方法 (つまり、コンストラクターの呼び出し) で抽象クラスまたはインターフェイスをインスタンス化することはできません。

于 2013-03-19T15:46:11.080 に答える