如何在C#中使用Interface或Abstract类?

时间:2013-03-19 15:43:23

标签: c#

我收到了第三方DLL。

我首先尝试启动这样的对象:

TestClass MyClass = new TestClass();

但Visual Studio告诉我使用界面。

我以前从未这样做过,也不知道从哪里开始。

错误:

  

Type'MyClass.blabla'没有构造函数定义的Interope类型   'MyClass.Subclass'无法嵌入。使用适用的界面   代替。

3 个答案:

答案 0 :(得分:2)

这可能是因为您正在使用COM类。如果是这种情况,你很可能想写:

ITest myTest = new TestClass();

COM包装器经常通过名为ITest的CoClass公开TestClass接口。但是,在使用COM时,您(通过设计)通常只针对接口(ITest)进行编写,并且不希望直接针对实现进行编写。

答案 1 :(得分:0)

完全取决于TestClass的声明方式。如果TestClass为abstract,则无法直接创建其实例,而是必须从TestClass中的一个类Derived创建实例。

TestClass test = new TestClassDerived();

其中

class TestClassDerived : TestClass
{

}

答案 2 :(得分:0)

它可能会为您提供某种初始化方法或作为构造函数传递。您无法以您尝试的方式实例化抽象类或接口(即调用构造函数)