我有這個抽象類:有沒有辦法強制派生類來實現一個抽象類或嵌套在基類中的接口?
public abstract class Task
{
public string ID {get; set;}
public string Name {get; set;}
public abstract class Options{};
public abstract void Execute();
}
我有擴展此類其它類:
public class Copy : Task
{
public override void Execute()
{
Console.Write ("running");
}
}
我想每一個派生類中實現自己的選項類,以便他們可以有自己的自己的參數。
所以搜索類必須實現它自己的選項類它所需要的屬性,如「includesubfolders」,「區分大小寫」等。
同時移動任務可以實現它自己的:「覆蓋」等。
在一個抽象類中抽象強制der派生類實現它們自己,但是在同一個類中定義一個嵌套的抽象類或接口不會強制派生類實現它們自己的派生類。
我可以在每個派生類分別定義的每個屬性但失敗的目的,因爲我喜歡查詢後在Execute方法中Task.Options的屬性。
我也嘗試過動態對象,但這帶來了其他所有問題。
的*抽象*嵌套類,這就是爲什麼我們不能有好東西...... – BradleyDotNET 2015-02-10 21:52:12
你能請出示'Options'類是如何使用的例子在抽象基類「Task」中?如果沒有這種情況,你不需要在基類中聲明它。 – 2015-02-10 21:54:46
否。嵌套類更像命名空間,這就是爲什麼你不能執行實現。使用非嵌套類實現'Task.Options'完全合法! – 2015-02-10 21:57:28