接口强制抽象类实现其功能

时间:2010-10-15 05:04:11

标签: c# interface abstract-class

我有一个实现3个接口的抽象类。

 public abstract class ServiceBaseCore<Entity, EntityKey> : MarshalByRefObject, IComponentService, IEntityProvider<Entity, EntityKey>
    where Entity : IEntityId<EntityKey>, new()
    where EntityKey : IEntityKey, new()
{
 // Provided functionality/body to some methods of interface
}

问题:我收到的错误是我的抽象类没有为接口函数提供实现(定义/正文),其中我读到的是“如果一个类是抽象的,那么就不需要为所有人提供实体/接口的任何功能实现“。

注意:代码是由codeSmith生成的,即使它显示错误。

请告诉我我错在哪里以及我缺少什么。

由于

4 个答案:

答案 0 :(得分:7)

只需创建一些抽象函数,编译器就会停止抱怨:

public abstract void MyMethodDeclaredInTheInterface();

编辑:要加快进程,只需将插入符号移动到抽象类中的接口名称上,然后按ctrl +。并选择“实现接口YourInterface”。 然后稍微搜索并替换NotImplementedException应该可以解决问题。

答案 1 :(得分:1)

为界面创建抽象方法。否则,该类实际上并不一定以任何方式实现这些方法,即使派生类可能(派生版本不能通过vtable可用于基础,因此无法实现接口契约)。这会违反接口背后的想法。

注意:已经很晚了,我很累,所以我的理由可能是错的。但是为接口所需的方法添加抽象方法将解决问题。

答案 2 :(得分:0)

您应该能够右键单击接口名称(MyClass : IMyInterface附近)以查看上下文菜单,然后选择“实现接口”。 Visual Studio将创建所有必需的方法和属性以使界面饱和。

答案 3 :(得分:0)

您可以尝试使用某些IDE来节省大量时间。我确切地知道,Eclipse可以自动执行此操作。