首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

foreach循环的内部类乎不能给迭代的对象赋值啊为什么

2013-09-06 
foreach循环的内部好像不能给迭代的对象赋值啊,为什么?我初始化一个数组,然后赋值。下面几行代码会有编译错

foreach循环的内部好像不能给迭代的对象赋值啊,为什么?
我初始化一个数组,然后赋值。下面几行代码会有编译错误:


                int[] array = new int[10];
                foreach( int i in array )
                {
                    i = 8;
                }

报错:error CS1656: Cannot assign to 'i' because it is a 'foreach iteration variable'
如果我修改i的类型为ref int i,那么编译错误就变成了一大堆东西:
error CS1031: Type expected
) expected
Embedded statement cannot be a declaration or labeled statement
; expected
Invalid expression term 'in'
; expected
; expected
Invalid expression term ')'
; expected

这是什么原因呢? 我的代码改怎么修改?


[解决办法]
foreach迭代出的对象只读,如果想赋值用for循环
[解决办法]
“i”是一个“foreach 迭代变量”,无法为它赋值。

热点排行