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;
        }
    }