見て:リフレクションを使用して値の型をnullに設定すると、奇妙な動作が発生します。なぜですか?次の例で
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);
}
}
の例では、私は、リフレクションを使用してnull
にint
プロパティを設定しています。 null
はint
の有効な値ではないため、例外をスローすることを期待していました。しかし、それはスローされません、それはちょうど0にプロパティを設定します。なぜ!
更新
[OK]を、それはそれがどれだけあるようです。このプロパティは、nullに設定しようとすると、value-typeのデフォルト値を取得します。私は自分の問題をどのように解決したのかを記述した回答を掲載しました。多分いつか誰かを助けるでしょう。答えたすべての人に感謝します。