Bonjour,

Je débute en C#.
J'ai voulu me faire rapidement une classe "Vecteur" permettant de faire des calculs, mais je rencontre qq soucis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    struct Vector2<T> where T : struct
    {
        public T A;
        public T B;
 
        public Vector2(T NewA, T NewB)
        {
            A = NewA;
            B = NewB;
        }
 
        public static Vector2<T> operator +(Vector2<T> a, Vector2<T> b)
        {
            Vector2<T> Ret = new Vector2<T>();
            Ret.A = a.A + b.A;
            Ret.B = a.B + b.B;
            return Ret;
        }
}
A la compilation, on me dit que "l'opérateur '+' ne peut être appliqué aux opérandes de type 'T'.
Donc, je me dis qu'il faudrait que je place une interface bien sentie dans le where du générique, mais dans les types de base, je ne vois aucune interface qui définisse les opérateurs de calcul...

Quelqu'un peut-il me dire ce qui cloche dans mon raisonnement, et comment écrire une telle classe pour qu'elle fonctionne avec les types de base ?