oeil à l'exemple suivant:Comportement étrange lors de la définition de types de valeur à null en utilisant la réflexion, pourquoi?
public class Test {
public int Number { get; set; }
public void TestReflection() {
Number = 99;
Type type = GetType();
PropertyInfo propertyInfo = type.GetProperty("Number");
propertyInfo.SetValue(this, null, null);
}
}
Dans l'exemple je définition d'une propriété int
à null
utilisant la réflexion. Je m'attendais à ce que cela lance une exception car null
n'est pas une valeur valide pour int
. Mais il ne jette pas, il met juste la propriété à 0. Pourquoi?
Mise à jour
Ok, il semble que ce soit à quel point il est. La propriété obtient la valeur par défaut du type de valeur si vous tentez de le définir sur null. J'ai posté une réponse décrivant comment j'ai résolu mon problème, peut-être que cela aidera quelqu'un un jour. Merci à tous ceux qui ont répondu.