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


How do I use an Interface or Abstract class in C#?

本问题已经有最佳答案,请猛点这里访问。

已向我提供第三方DLL。

我第一次尝试启动对象是这样的:

1
TestClass MyClass = new TestClass();

但是Visual Studio告诉我使用该接口。

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

错误:

The Type 'MyClass.blabla' has no constructors defined Interope type
'MyClass.Subclass' cannot be embedded. Use the applicable interface
instead.


这可能是因为您使用的是COM类。如果是这样,你很可能会写:

1
ITest myTest = new TestClass();

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


它可能为您提供某种初始化方法,或者作为构造函数传递。不能像尝试的那样(即调用构造函数)实例化抽象类或接口。


这完全取决于如何声明TestClass。如果testclass是abstract,则不能直接创建其实例,而是必须从testclass的Derived类中的一个创建实例。

1
TestClass test = new TestClassDerived();

哪里

1
2
3
4
class TestClassDerived : TestClass
{

}