我试图像这样迭代按钮的二维数组
Button[,] buttonsArray = new Button[row,col];
foreach(Button button in buttonsArray)
{
button = new Button();
}
但我得到了下一个错误:“错误无法分配给'按钮',因为它是'foreach迭代变量'”
我在做什么?
答案 0 :(得分:3)
编译器消息说明了一切 - 您正在尝试为button
分配新值,但迭代变量(由foreach
语句声明的变量)是只读的。 foreach
循环只能用于迭代集合中的现有内容 - 它不能用于更改集合中的内容。 (请注意,如果更改集合引用的对象中的数据,则实际上并未更改集合中的值,这只是对象的引用。)
我怀疑你真的想要更像这样的东西:
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
buttonsArray[i, j] = new Button();
}
}
答案 1 :(得分:1)
您无法在foreach
循环中修改变量的值。为避免这种情况,您应该使用常规for
循环:
for(int i = row; i < row; i++)
{
for(int j = col; j < col; j++)
{
buttonsArray[i, j] = new Button();
}
}