title: C# compiler complains that abstract class does not implement interface?
body: <p>I have a nice interface, and I want to implement one member of it in a base class so the clients can derive from the base class and have less boiler-plate to write. However, even though declared abstract, the compiler complains that the class does not implement the interface?!? How is this supposed to be done?</p>
  
  <p>Code in question:</p>
  
  <pre><code>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;
          }
      }
  }
  </code></pre>
  
  <p>and the error I get is:</p>
  
  <pre><code>ITaskDefinition.cs(15,27): error CS0535: 'NetWork.Task.TaskDefinitionBase' does not implement interface member 'NetWork.Task.ITaskDefinition.CreateTask(NetWork.Task.TaskId)'
  </code></pre>