有人可以告诉我这段代码有什么问题吗? VS2012拒绝了第二个foreach声明。
我得到了
"type or namespace name 'grid' could not be found..."
和
"invalid token 'foreach' in class..."
public static void go(DataTable grid)
{
foreach (DataRow row in grid.Rows);
}
foreach (DataColumn col in grid.columns);
}
我得到同样的错误:
public static void go(DataTable grid)
{
foreach (DataRow row in grid.Rows);
}
foreach (DataColumn col in row.columns);
}
我的VS一直在崩溃(实际上,我在Windows XP之前见过的第一个真正的“死亡蓝屏”)并且我有一些不寻常的行为,比如控件从表格中消失。
那么,谁正在遭受扭曲的代码逻辑,我还是VS?
答案 0 :(得分:3)
您的嵌套foreach块没有闭包:
应该是:
public static void go(DataTable grid)
{
foreach (DataRow row in grid.Rows)
{
foreach (DataColumn col in row.columns)
{
}
}
}
答案 1 :(得分:2)
第二个foreach似乎只是随机放在你的代码文件中。它需要在函数内部
public static void go(DataTable grid)
{
foreach (DataRow row in grid.Rows)
{
foreach (DataColumn col in row.columns)
{
}
}
}
答案 2 :(得分:1)
在第二个}
之前,你还有一个额外的foreach
。那个正在关闭方法,所以第二个foreach
超出了方法定义,这是一个语法错误。
答案 3 :(得分:1)
如果没有适当的缩进,您的代码很难阅读,但您的foreach不是嵌套的。也就是说它们是完全分开的,因此第二个foreach区块看不到“网格”。