मेरे पास एक अच्छा इंटरफ़ेस है, और मैं इसे बेस क्लास में एक सदस्य को कार्यान्वित करना चाहता हूं ताकि ग्राहक बेस क्लास से प्राप्त कर सकें और लिखने के लिए कम बॉयलर-प्लेट हो। हालांकि, भले ही अमूर्त घोषित किया गया हो, संकलक शिकायत करता है कि कक्षा इंटरफ़ेस को लागू नहीं करती है?! यह कैसे किया जाना चाहिए? सवाल मेंसी # कंपाइलर शिकायत करता है कि अमूर्त वर्ग इंटरफ़ेस को लागू नहीं करता है?
कोड:
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;
}
}
}
और त्रुटि मैं मिलता है:
public abstract ITask CreateTask(TaskId id);
उत्तराधिकारियों तो ओवरराइड कर सकते हैं:
ITaskDefinition.cs(15,27): error CS0535: 'NetWork.Task.TaskDefinitionBase' does not implement interface member 'NetWork.Task.ITaskDefinition.CreateTask(NetWork.Task.TaskId)'
एक टिप के रूप में - सार कक्षा में ITaskDefinition पर क्लिक करके और दबाने Ctrl +। यह आपके लिए ठीक करेगा। – RichardOD