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
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;
        }
Elle ne compile pas message d'erreur:
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
En revanche je ne vois pas quelle sotise j'ai commise, je m'en remet donc à vous.
Merci
Soazig