根据您所使用的短语“默认方式”的,我相信这是你真正想要的,那么:
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