2013-07-17 101 views

回答

4

這種方法的文檔是矛盾的:

  • expression參數的文檔狀態,它可以是null爲靜態成員
  • ArgumentNullException的文檔狀態如果expressionnull它被拋出

事實是
此方法不能用於訪問靜態成員,expression參數的文檔不正確。
即使提供了正確的Type的表達式,該方法也無法按預期工作,因爲它只查找實例成員。

要訪問靜態字段或屬性,請改爲使用Expression.MakeMemberAccess

+0

然後是PropertyOrField和MakeMemberAccess之間的唯一區別,後者允許靜態成員訪問?順便說一句,MakeMemberAccess的doc也是buggy - 它表示靜態成員的表達式可以爲null,異常部分表示如果expression爲null,則會拋出ArgNullException ... – KFL

相關問題