Bonjour,
J'ai une méthode log qui attend d'être appelée de la manière suivante par la méthode toto (nom) :
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
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 ... ; }
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 ?
Partager