[英]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.