我们都知道readonly
引用类型变量的引用不能更改,但GC可以更改它。 GC更改readonly
类型指针时会发生什么?
答案 0 :(得分:0)
Readonly实际上并不是只读...例如,反射可以改变只读字段。因此,这与任何其他引用没有什么不同(因为GC是VM的一部分,并且比反射强得多)。
改变string.Empty的值总是有点傻笑......(咳嗽,我永远不会那样,咳嗽)
答案 1 :(得分:0)
如果您询问当GC移动只读类型
的变量时会发生什么然后回答没有任何反应。 GC像往常一样移动位置。这就是全部
对于GC移动,非只读类型与移动只读类型相同。 ReadOnly和nonReadOnly概念适用于不是GC的程序员
答案 2 :(得分:0)
首先,可以在构造函数内重新分配readonly
引用。至于GC移动指针,除了用户代码不能改变他们所指向的内容之外,它没有什么比其他普通指针发生的更特殊。
基本上readonly
只会阻止您更改引用,而不会阻止运行时执行它应该执行的操作。