Bonjour,
J'ai une méthode log qui attend d'être appelée de la manière suivante par la méthode toto (nom) :
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
26
public static void toto(ref decimal? limit, ref string code)
{
log("limit", typeof(decimal?), "code", typeof(string));
...
}
public static int log(params object[] parameters)
{
    if ( (parameters[i].GetType() != typeof(string)) ||
        !(parameters[i + 1] is Type))
    {
        return 0;
    }
    else
    {
        if (parameters[i + 1].GetType() == typeof(decimal?))
        {
            ....
        }
        else if (parameters[i + 1].GetType() == typeof(string))
        {
            ....
        }
        ....
    }
    return ... ;
}
Le problème est que mes tests ne fonctionnent pas car le type d'un typeof n'est pas un System.Type mais un System.RuntimeType
Quand je regarde la valeur du premier parameters[i + 1].ToString(), j'obtiens "System.Nullable`1[System.Decimal]", il doit donc bien y avoir moyen d'obtenir le "sous-type" de parameters[i + 1] d'une meilleur manière qu'aller regarder si le tostring() contient System.Decimal ou System.String, etc... Mais je ne sais pas comment. Est-ce que vous pouvez m'aider s'il vous plaît ?