donc avec cette classe j'aiC# hérité d'initialisation de la classe
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();
}
}
et une autre classe qui hérite
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; }
}
Lorsque vous appelez l'objet Line(true, 1, true, Color.Gray, true)
il fait la substitution de la fonction de classe héritée, puis définit steps
à true
.
Je veux steps
à inclure dans la commande prioritaire si steps
va maintenant être true
au lieu de false
(sa valeur par défaut).
Si cela est possible, donnez-moi quelques conseils et astuces sur la façon de résoudre ce problème et expliquez-moi pourquoi mon installation ne permettra pas que le remplacement se produise après le constructeur init.
Ce code ne compile pas. Vous appelez 'createTypeOptions' depuis createOptions mais la base n'a pas de fonction, et la base n'a pas de constructeur qui prend 4 paramètres. –
désolé createTypeOptions devrait être createOptions lorsque je copiais le code à stackoverflow je dois avoir manqué cela. ainsi a oublié le constructeur d'options – Ayo
y at-il une raison pour avoir des étapes aussi statiques? –