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