Bonjour,
J'ai défini un ensemble de classes génériques, mais je voulais en plus utiliser les opérateurs arithmétiques. Comme je l'ai appris sur ce lien, cela est impossible ( http://msdn.microsoft.com/fr-fr/library/c6cyy67b.aspx ). J'ai donc songé à créer une fonction réalisant l'opération arithmétique. Voici une portion du code que j'ai écrit :
Cela fonctionne dans le cas où je lance un appel du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class operateurs<T> { public static Int32 somme(Int32 v1, Int32 v2) { return v1 + v2; } public static T somme(T v1, T v2) { return (T)Convert.ChangeType(v1.ToString() + v2.ToString(), default(T).GetType()); } }
Par contre, quand j'appelle cette classe depuis une autre classe générique, même si le type des valeurs fournies est bien Int32, il appelle la seconde méthode et concatène donc les deux nombres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part operateurs<Int32>(2, 3);
Sachant que l'on ne peut pas non plus implémenter un modèle pour un type donné (toujours d'après ce lien : http://msdn.microsoft.com/fr-fr/library/c6cyy67b.aspx ), je me retrouve perdu, et vient vous demander si quelqu'un saurait m'éclairer pour arriver à une solution !
Merci d'avance !
Partager