J'ai une belle interface, et je veux implémenter un membre dans une classe de base pour que les clients puissent dériver de la classe de base et avoir moins de plaque de chaudière à écrire. Cependant, même si déclaré abstrait, le compilateur se plaint que la classe n'implémente pas l'interface?!? Comment cela est-il censé être fait?Le compilateur C# se plaint que la classe abstraite n'implémente pas l'interface?
code en question:
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;
}
}
}
et l'erreur que je reçois est:
ITaskDefinition.cs(15,27): error CS0535: 'NetWork.Task.TaskDefinitionBase' does not implement interface member 'NetWork.Task.ITaskDefinition.CreateTask(NetWork.Task.TaskId)'
En pointe - cliquant sur le ITaskDefinition dans la classe abstraite et en appuyant sur CTRL +. va résoudre ce problème pour vous. – RichardOD