-3

Can anybody tell me what is wrong with this code? VS2012 is rejecting the second foreach statement.

I get

"type or namespace name 'grid' could not be found..." 

and

"invalid token 'foreach' in class..."  

public static void go(DataTable grid)
    {
        foreach (DataRow row in grid.Rows);
    }
           foreach (DataColumn col in grid.columns);
    }

I get the same error for:

public static void go(DataTable grid)
    {
        foreach (DataRow row in grid.Rows);
    }
           foreach (DataColumn col in row.columns);
    }

My VS has been crashing periodically (actually, first real "blue screen of death" that I've seen since before Windows XP) and I've had some unusual behaviors like controls disappearing from forms.

So, who is suffering distorted code logic, me or VS?

4

4 に答える 4

3

ネストされた foreach ブロックにはクロージャーがありません:

そのはず:

public static void go(DataTable grid)
{
    foreach (DataRow row in grid.Rows)
    {
        foreach (DataColumn col in row.columns)
        {
        }
    }
}
于 2013-06-03T23:56:42.037 に答える
2

2 番目の foreach は、コード ファイルにランダムに配置されているようです。関数内にある必要があります

        public static void go(DataTable grid)
        {
            foreach (DataRow row in grid.Rows)
            {
               foreach (DataColumn col in row.columns)
               {
               }
            }
        }
于 2013-06-03T23:58:05.160 に答える
1

2 番目の の前に余分な}権利がありforeachます。1 つはメソッドを閉じているため、2 番目foreachはメソッド定義から外れており、構文エラーです。

于 2013-06-03T23:56:41.597 に答える
1

あなたのコードは適切なインデントなしでは読みにくいですが、foreach はネストされていません。つまり、それらは完全に分離されているため、「グリッド」は 2 番目の foreach ブロックには表示されません。

于 2013-06-03T23:57:49.540 に答える