繁体   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