我有一个实现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生成的,即使它显示错误。
请告诉我我错在哪里以及我缺少什么。
由于
答案 0 :(得分:7)
只需创建一些抽象函数,编译器就会停止抱怨:
public abstract void MyMethodDeclaredInTheInterface();
编辑:要加快进程,只需将插入符号移动到抽象类中的接口名称上,然后按ctrl +。并选择“实现接口YourInterface”。 然后稍微搜索并替换NotImplementedException应该可以解决问题。
答案 1 :(得分:1)
为界面创建抽象方法。否则,该类实际上并不一定以任何方式实现这些方法,即使派生类可能(派生版本不能通过vtable可用于基础,因此无法实现接口契约)。这会违反接口背后的想法。
注意:已经很晚了,我很累,所以我的理由可能是错的。但是为接口所需的方法添加抽象方法将解决问题。
答案 2 :(得分:0)
您应该能够右键单击接口名称(MyClass : IMyInterface
附近)以查看上下文菜单,然后选择“实现接口”。 Visual Studio将创建所有必需的方法和属性以使界面饱和。
答案 3 :(得分:0)
您可以尝试使用某些IDE来节省大量时间。我确切地知道,Eclipse可以自动执行此操作。