所以用這個類我有C#繼承類初始化
public class Options
{
public bool show { get; set; }
public int lineWidth { get; set; }
public bool fill { get; set; }
public Color fillColour { get; set; }
public string options { get; set; }
public virtual void createOptions()
{
options += "show: " + show.ToString().ToLower();
options += ", lineWidth: " + lineWidth;
options += ", fill: " + fill.ToString().ToLower();
options += ", fillColor: " + (fillColour != Color.Empty ? ColourToHex(fillColour) : "null");
}
public Options(bool _show, int _lineWidth, bool _fill, Color _fillColour)
{
show = _show;
lineWidth = _lineWidth;
fill = _fill;
fillColour = _fillColour;
createOptions();
}
}
,並繼承其
public class Line : Options
{
public static bool steps { get; set; }
public override void createOptions()
{
options += ", lines: {";
options += " steps: " + steps.ToString().ToLower() + ",";
base.createOptions();
options += "}";
}
public Line(bool _show, int _lineWidth, bool _fill, Color _fillColour, bool _steps)
: base(_show, _lineWidth, _fill, _fillColour) { steps = _steps; }
}
當調用對象Line(true, 1, true, Color.Gray, true)
另一個類它繼承的類功能的替代,再將steps
設置爲true
。
我想要steps
被包含在覆蓋中,所以steps
現在將是true
而不是false
(它的默認值)。
如果可能的話請給我一些關於如何解決這個問題的指針和技巧,並向我解釋爲什麼我的設置不允許在構造函數初始化之後發生重寫。
此代碼不能編譯。你可以從createOptions中調用'createTypeOptions',但是基本沒有功能,並且基礎沒有構造函數需要4個參數。 – 2009-11-20 02:47:47
抱歉createTypeOptions應該是createOptions當我複製代碼到stackoverflow我一定錯過了。以及忘記選項構造函數 – Ayo 2009-11-21 14:36:51
是否有任何理由讓步驟爲靜態? – 2012-02-18 16:37:48