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

时光总嘲笑我的痴心妄想 提交于 2019-11-30 15:14:09

问题


I am not sure what the problem is but I keep receiving this error when I try to use a while statement in my code.

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

I want to use a while loop to have something continuously update while a statement is true.

The rest of my code is rather long but whenever I type in the syntax:

while(a<b)
{
//do whatever i want it to do here
}

It gives me that compiler error right off the bat. Not quite sure what the problem is. I am doing this in a C# windows application under the Form1.cs file with all the other event handlers (for buttons and such). Thanks!


I was unaware that loops had to be placed within a method (fairly new to c#), but I tried it and no errors were returned. Thanks for your help everybody!

Previously, I just had the loop within the main class of the program.


回答1:


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.




回答2:


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.




回答3:


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.




回答4:


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.




回答5:


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);
        }
    }


}


来源:https://stackoverflow.com/questions/397019/invalid-token-while-in-class-struct-or-interface-member-declaration-in-very

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