Pour ton premier problème tu vas être obligé de faire un cast dynamique via Convert.ChangeType à mon avis... Ca donnerait un truc du genre
1 2 3
| float val = (float)Convert.ChangeType(myComponent.Text, myComponent.Type);
//Ce qui gène ici est le (float) mais je ne vois pas trop comment
//l'enlever et en plus tu dois de toute façon définir float val donc... |
Pour information, le nom d'un type est géré dans Type.Name ainsi, si tu as à créer du code, ça donne quelque chose comme ça :
1 2
| string lignedecode = myComponent.MyType.Name + " val = (" + myComponent.MyType.Name + ")" +
"Convert.ChangeType(myComponent.Text, myComponent.MyType); |
Pour ton deuxième problème, je ne connais pas vraiment la programmation des IDE mais de toute façon tu peux faire une liste :
Type[] authorizedtypes = { typeof(float), typeof(double), typeof(int) }; // à compléter.
Ensuite, dans un quelconque endroit où tu génère une liste déroulante :
1 2
| foreach(Type t in authorizedtypes)
AjouterDansLaListe(t.Name); //Retourne un nom comme Int16 pour short, Int32 pour int, Double pour double... |
Enfin, quand tu dois savoir ce que l'utilisateur a sélectionné :
1 2 3 4
| string str = ChoixDeLUtilisateur();
foreach(Type t in authorizedtypes)
if(t.Name == str)
//L'utilisateur a choisit t, donc on définit le MyType de sa TypedTextBox à t |
[Post Lecture]Je suis presque incompréhensible... Donc pour récapituler en gros, tu dois te servir du champ
System.Type.Name qui te retourne le type .NET (Int16, Int32, Double, Float, String...) du type sélectionné.
PS : Si je suis vraiment aussi incompréhensible que j'en ai l'impression alors post moi un peu plus de code, ça m'aidera
Partager