Expression.PropertyOrField可以用来访问静态属性或字段吗?

Expression.PropertyOrFieldexpression参数的文档声明它对于静态成员可以为null

一个Expression,其Type包含名为propertyOrFieldName的属性或字段。 静态成员可以为null
(强调我的)

但是,每当我传递null我都会得到一个ArgumentNullException

这种方法的文档是矛盾的:

  • expression参数的文档声明静态成员可以为null
  • ArgumentNullException的文档声明,如果expressionnull ,则抛出它

事实是
此方法不能用于访问静态成员, expression参数的文档不正确。
即使提供了具有正确Type的表达式,此方法也无法按预期工作,因为它只查找实例成员。

要访问静态字段或属性,请改用Expression.MakeMemberAccess