You can invoke constructor overloads from each other as such: public Prix(double valeur, string monnaie) calls public Prix(double valeur) by: public Prix(double valeur, string monnaie) : this(valeur) Therefore, You can simplify the exact same behaviour at least in terms of the final state as follows: class Prix { double valeur; string monnaie = "€"; public Prix(double valeur, string monnaie) : this(valeur) { if (monnaie.Equals("€") || monnaie.Equals("$")) { this.monnaie = monnaie; } } public Prix(double valeur) { this.valeur = valeur; } }