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 :

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());
   }
}
Cela fonctionne dans le cas où je lance un appel du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
operateurs<Int32>(2, 3);
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.

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 !