PropertyInfo SetValue and nulls )
public class Thing { public int X; } Thing o ,和 FieldInfo fi 它指向 X 菲尔德,为什么打电话是合法的 fi.SetValue(o, null) ? 运行时设置字段 十 归零,即。 default(int) 而不是抱怨 ValueType null .
public class Thing { public int X; }
Thing o
FieldInfo fi
X
fi.SetValue(o, null)
十
default(int)
ValueType
null
有没有人知道这种行为背后的设计选择,至少从C#违反了我的最小惊讶原则?
异常框中包含的文本 ArgumentException 表示传入的值受
ArgumentException
值参数无法转换并存储在字段中。
你可以试着联系我 Eric Lippert