Bonjour,
Dans mon programme C++/cli et C# j'utilise des énumérations pour clarifier mon code.
Ma classe Line contient par exemple une énumération définissant le type de pointillé souhaité
A plusieurs endroits de ma classe, j'ai des méthodes prenant comme argument un objet de type dash_types. (constructor, setter)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 enum class dash_types : int { FULL = 0, DASH = 1, DOT = 2, DASH_DOT = 3, DASH_DOT_DOT = 4, RAIL = 5 };
Jusque là, rien de bien méchant mais je souhaite mémoriser mes objets Line en base de données et donc mes "dash_types" deviennent de simples "integer"
Ceci me force à devoir convertir systématiquement les entiers lu en dash_type à la lecture et vis versa à l'écriture ...
J'aurais bien voulu pouvoir passer en argument un entier à une méthode demandant un "dash_types" sans devoir ré-écrire la méthode et faire une conversion manuelle.
Ma question est : est-ce possible et si oui, comment ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Line l; l.set_dash(Line.dash_types.FULL); // serait équivalent à : int type = 0; l.set_dash(type); //où à terme, type serait récupéré dans la database
Partager