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 : 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
	};
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 : 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
Ma question est : est-ce possible et si oui, comment ?