[英]C# - Are FieldInfo and PropertyInfo Immutable or Mutable?
基本上,我有以下几点:
protected static readonly FieldInfo SpecialField = FindSpecialField();
FxCop向我抱怨,尽管该字段是可变的,但我不能将其设为只读,因为可以更改成员。 FieldInfo和PropertyInfo是不可变的还是可变的。 基本上,我可以禁止显示此消息吗?
FieldInfo本身看起来是不变的,但它的派生可能存在也可能没有。 例如,可以修改FieldBuilder 。 PropertyInfo同样适用。
因此,如果您知道它始终是通过反射获得的FieldInfo,那么您很可能会很安全。
我会说它们是不可变的。 没有成员可以更改FieldInfo
和PropertyInfo
实例的状态。 SetValue()
方法更改Field / Property所属的实例(或类的静态成员)的值,但不更改FieldInfo / PropertyInfo本身。
尽管我从未见过我知道它是可变的,但它们是基类,并且知道派生类可能是什么样子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.