C#中foreach不能改变迭代变量的值

 

然而此种说法只适用与值类型,更改值类型时会改变在栈上的内存分布

引用类型由于是引用地址的变更,不影响内存分布,所以能够在foreach中更改

至于引用类型中的特殊string类型,猜想是因为string类型的变更不是地址的更改,而是会在堆上面重新开辟一块,所以应该也是会影戏到内存分布

 posted on 2019-02-19 17:28  Hi!Bro!  阅读(547)  评论(0编辑  收藏  举报