我已经在程序中使用了这三个字段,并得到了用法上的差异,但我有点困惑这些字段存储在哪里?是在数据段(堆栈还是堆?)还是代码段?
static int a;
const int b=1235;
readonly int c;
在ILDASM中字段描述如下
对于静态:.field private static int32 a
对于常量: .field 私有静态文字 int32 b = int32(0x000004D3)
对于只读:.field private initonly int32 c
如您所知,const 是静态的,这意味着它存储在堆中。 Readonly 就像会员一样。就像任何其他成员一样,只读的值也存储在堆上。
有关 const 和 readonly 的任何进一步参考,请参阅下面的链接。https://blogs.msdn.microsoft.com/csharpfaq/2004/12/03/what-is-the-difference- Between-const-and-static-readonly/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)