我有一个很好的接口,我想在基类中实现它的一个成员,因此客户端可以从基类派生,并且可以编写更少的样板.但是,即使声明为abstract,编译器也会抱怨该类没有实现接口?!?应该怎么做?
有问题的代码:
public interface ITaskDefinition
{
ITask CreateTask(TaskId id);
string Name { get; }
bool HasName { get; }
}
public abstract class TaskDefinitionBase : ITaskDefinition
{
private string name_ = null;
public void SetName(string name)
{
name_ = name;
}
public string Name
{
get
{
return name_;
}
}
public bool HasName
{
get
{
return name_ != null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
ITaskDefinition.cs(15,27): error CS0535: 'NetWork.Task.TaskDefinitionBase' does not implement interface member 'NetWork.Task.ITaskDefinition.CreateTask(NetWork.Task.TaskId)'
Run Code Online (Sandbox Code Playgroud)
R. *_*des 43
您必须添加方法的抽象存根:
public abstract ITask CreateTask(TaskId id);
Run Code Online (Sandbox Code Playgroud)
然后,继承者可以覆盖它以实现接口.
| 归档时间: |
|
| 查看次数: |
7022 次 |
| 最近记录: |