簡體   English   中英

C#-FieldInfo和PropertyInfo是不可變的還是可變的?

[英]C# - Are FieldInfo and PropertyInfo Immutable or Mutable?

基本上,我有以下幾點:

protected static readonly FieldInfo SpecialField = FindSpecialField();

FxCop向我抱怨,盡管該字段是可變的,但我不能將其設為只讀,因為可以更改成員。 FieldInfo和PropertyInfo是不可變的還是可變的。 基本上,我可以禁止顯示此消息嗎?

FieldInfo本身看起來是不變的,但它的派生可能存在也可能沒有。 例如,可以修改FieldBuilder PropertyInfo同樣適用。

因此,如果您知道它始終是通過反射獲得的FieldInfo,那么您很可能會很安全。

我會說它們是不可變的。 沒有成員可以更改FieldInfoPropertyInfo實例的狀態。 SetValue()方法更改Field / Property所屬的實例(或類的靜態成員)的值,但不更改FieldInfo / PropertyInfo本身。

盡管我從未見過我知道它是可變的,但它們是基類,並且知道派生類可能是什么樣子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM