代码之家  ›  专栏  ›  技术社区  ›  Sebastian Good

不应该使用FieldInfo.SetValue将ValueType设置为null失败?

  •  6
  • Sebastian Good  · 技术社区  · 14 年前

    PropertyInfo SetValue and nulls )

    public class Thing { public int X; } Thing o ,和 FieldInfo fi 它指向 X 菲尔德,为什么打电话是合法的 fi.SetValue(o, null) ? 运行时设置字段 归零,即。 default(int) 而不是抱怨 ValueType null .

    有没有人知道这种行为背后的设计选择,至少从C#违反了我的最小惊讶原则?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Rob    14 年前

    异常框中包含的文本 ArgumentException 表示传入的值受

    值参数无法转换并存储在字段中。

    你可以试着联系我 Eric Lippert

    推荐文章