我想在C#中定義,它總是返回實現類的一個對象,因此方法的接口:我可以強制實現類返回它自己類型的對象嗎?
public interface IParser {
IParser Parse(string s);
}
public class Parser : IParser {
public Parser Parse(string s) {
return new Parser(s);
}
}
我可以強制實現的類返回其自身類型的對象?如果可能的話,如何?或者泛型是這裏的答案?
注:的代碼只是一個例子,不是一件 應該運行。
你讓我非常好奇:你爲什麼要這樣做?通常,定義接口的意義在於,客戶端代碼可以相信在對象上定義了某個API,而無需知道或關心該對象的具體類型是什麼。這是面向對象的一大優勢。你通過這樣做試圖完成什麼? –
嗯,我的想法是通過擁有這個接口,你總是可以相信實現這個接口的類將擁有這個方法,並且它們總是會返回它們自己的類型。但正如你所說,這可能不是最好的面向對象設計,我將放棄它來獲得返回接口類型的方法。 – Cros