根據您所使用的短語「默認方式」的,我相信這是你真正想要的,那麼:
public class BaseClass {
public BaseClass(
Func<string, bool> stringToBool = null,
Func<string, string> stringToString = null
){
stringToBool = stringToBool ?? DefaultStringToBool;
stringToString = stringToString ?? DefaultStringToString;
}
private static bool DefaultStringToBool(string s) {
<Insert default logic here>;
}
private static string DefaultStringToString(string s) {
<Insert default logic here>;
}
}
然後,你甚至不需要接觸的構造基礎的東西可言,除非你想覆蓋該默認邏輯。
但是,你真的不應該這樣做,它緊緊地結合你的課程。
更好
只是做到這一點:
public abstract class BaseClass {
protected virtual bool DefaultStringToBool(string s) {
<Insert default logic here>;
}
protected virtual string DefaultStringToString(string s) {
<Insert default logic here>;
}
}
public DerivedClass : BaseClass {
protected override string DefaultStringToString(string s) {
<Insert override logic here>;
}
}
有一個在你的系統中的設計缺陷,如果你是路過funcs中到您的實例方法,因爲類已經可以重寫的方法,抽象方法,虛擬方法,等等。
做..你剛纔說的。你在問語法嗎? – Blorgbeard
我應該在DerivedClass中創建我想要的方法,然後在構造函數中傳入這些方法?或者有沒有辦法在構造函數本身中創建函數? –
當然,我認爲像'base(t => false,t => t)'這樣簡單的東西就可以工作。 – Blorgbeard