Invalid token 'while' in class, struct, or interface member declaration in very simple code

泪湿孤枕 提交于 2019-11-30 14:02:11

Based on the error, it sounds like the compiler thinks this code is typed directly in the body of a class/struct/interface declaration. Statements while/if/for/etc ... must appear with in a method.

Try moving this code into a method to fix the problem. If it's in a method, you likely have a mismatched brace problem.

There's nothing wrong with the while, it's something above it that's the problem. Check for mismatched braces and semicolons in a comment or something like that.

Ali khan

C# is not allowed to write code directly into the classes; it is allowed to write only data members and function members directly into the classes.

You can also get this if you have punctuation issues, I got it today when I missing a simple parentheses:

public static string GetPasswordForEnvironment)

should have been:

public static string GetPasswordForEnvironment()

But the error showed up on the first "if" statement later in the function.

C# does not provide writing the for, while or foreach kind of looping statement directly inside the class. These statements should be within a user defined method, main method or constructors.

  class Array
{
    public static void main(string[] args)
    {
        int[] n = new int[10]; /* n is an array of 10 integers */

        /* initialize elements of array n */
        for (int i = 0; i < 10; i++)
        {
            n[i] = i + 100;
        }

        /* output each array element's value */
        foreach (int j in n)
        {
            int i = j - 100;
            Console.WriteLine("Element[{0}] = {1}", i, j);
        }
    }


}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!