(PropertyInfo SetValueおよびnullに関連)
フィールドを指す、、、およびaがpublic class Thing { public int X; }
ある場合、なぜ呼び出すことが合法ですか?ランタイムはフィールドをゼロに設定します。つまり、aをに設定できないと文句を言う代わりに。Thing o
FieldInfo fi
X
fi.SetValue(o, null)
X
default(int)
ValueType
null
この動作の背後にある設計上の選択を知っている人はいますか?少なくともC#からは、驚き最小の原則に違反していますか?