conversion directe int -> enum
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é
Code:
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
}; |
A plusieurs endroits de ma classe, j'ai des méthodes prenant comme argument un objet de type dash_types. (constructor, setter)
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.
Code:
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 |
Ma question est : est-ce possible et si oui, comment ?