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 :
A la compilation, on me dit que "l'opérateur '+' ne peut être appliqué aux opérandes de type 'T'.
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; } }
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 ?
Partager