来自另一个构造函数的典型调用构造函数,但是给了我一个错误

Moh*_*tia 2 c#

在尝试将常规构造函数调用到同一个类中的构造函数时:

    public Equation(OrdinaryEquations equation, 
                    double xTranslation,
                    double yTranslation, 
                    double rotationAngle)
      : this( (equation == OrdinaryEquations.SecondOrder) ? new EquationFunction(SecondOrderEquation) : new EquationFunction(ThirdOrderEquation), 
        xTranslation, yTranslation, rotationAngle){}
Run Code Online (Sandbox Code Playgroud)

OrdinaryEquations是枚举

EquationFunction是一个委托

我得到这个错误:"非静态字段,方法或属性需要一个对象引用"foreach:"new EquationFunction(SecondOrderEquation)"和"new EquationFunction(ThirdOrderEquation)",当我尝试访问对象数据时听起来像来自静态方法

另一个构造函数签名.:

public Equation(EquationFunction equation, double xTranslation, double yTranslation, double rotationAngle){}
Run Code Online (Sandbox Code Playgroud)

这里有什么我想念的吗?我无法弄清楚该做什么!!

PS我删除了条件运算符并使其成为正常的对象初始化但是给出了相同的错误

red*_*ong 5

我假设"SecondOrderEquation"是您的类"Equation"中的方法名称."SecondOrderEquation"的用法是指this.SecondOrderEquation,它需要"Equation"类型的实例作为上下文.

要修复它,您可以尝试将"SecondOrderEquation"和"ThirdOrderEquation"设置为静态方法.