[英]A typical calling constructor from another constructor, but gives me an error
在尝试使常规构造函数在同一类中进行构造函数调用时:
public Equation(OrdinaryEquations equation,
double xTranslation,
double yTranslation,
double rotationAngle)
: this( (equation == OrdinaryEquations.SecondOrder) ? new EquationFunction(SecondOrderEquation) : new EquationFunction(ThirdOrderEquation),
xTranslation, yTranslation, rotationAngle){}
普通方程式是枚举
EquationFunction是一个委托
我收到以下错误消息:“每个非静态字段,方法或属性都需要对象引用” foreach:“尝试访问对象数据时听起来像“ new EquationFunction(SecondOrderEquation)”和“ new EquationFunction(ThirdOrderEquation)”从静态方法
另一个构造器信号。 :
public Equation(EquationFunction equation, double xTranslation, double yTranslation, double rotationAngle){}
我在这里想念什么吗? 我不知道该怎么办!
PS我删除了条件运算符,并使其成为普通的对象初始化,但给出了相同的错误
我假设“ SecondOrderEquation”是您的类“ Equation”中的方法名称。 “ SecondOrderEquation”的用法是指this.SecondOrderEquation,它需要类型为“ Equation”的实例作为上下文。
要解决此问题,您可以尝试使“ SecondOrderEquation”和“ ThirdOrderEquation”成为静态方法。
问题是构造函数调用中的内联if语句。
一般来说,这种类型的对象构造有点代码味道。
也许您应该考虑创建一个工厂方法呢?
新的EquationFunction(SecondOrderEquation)
我不知道SecondOrderEquation是什么,但是它似乎是一个类型。您是说typeof(SecondOrderEquation)吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.