Bonjour,
Je cherchais à faire une fonction MAx avec un type générique de façon à ne pas réinventer la poudre.
Voilà la fonction que j'ai écrite
Elle ne compile pas message d'erreur:
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
20
21
22
23
24
25 /// <summary> /// Renvoie le max de deux valeurs nullables /// </summary> /// <typeparam name="T">type de base</typeparam> /// <param name="val1"></param> /// <param name="val2"></param> /// <returns></returns> public static T? Max<T>(T? val1, T? val2) where T : IComparable { T? retVal = null; if (val1 == null) retVal = val2; if (val2 == null) retVal = val1; if ((val1.HasValue) && (val2.HasValue)) { if (val2.Value.CompareTo(val1.Value) < 0) retVal = val1; } return retVal; }
En revanche je ne vois pas quelle sotise j'ai commise, je m'en remet donc à vous.Erreur 89 Le type 'T' doit être un type valeur non nullable afin d'être utilisé comme paramètre 'T' dans le type ou la méthode générique 'System.Nullable
Merci
Soazig
Partager