在非常简单的代码中,类、结构或接口成员声明中的标记“while”无效

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

提问人:Eric 提问时间:12/29/2008 最后编辑:Tim PostEric 更新时间:3/13/2019 访问量:42672

问:

我不确定问题是什么,但是当我尝试在代码中使用while语句时,我不断收到此错误。

类中的标记“while”无效, struct 或接口成员 声明

我想使用 while 循环让某些东西在语句为 true 时不断更新。

我的代码的其余部分很长,但每当我输入语法时:

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

它立即给了我编译器错误。不太确定问题出在哪里。我正在 Form1.cs 文件下的 C# 窗口应用程序中执行此操作,其中包含所有其他事件处理程序(用于按钮等)。 谢谢!


我不知道必须将循环放在方法中(对 c# 来说相当新),但我尝试了一下,没有返回任何错误。谢谢大家的帮助!

以前,我只是在程序的主类中有一个循环。

C# 循环 while 循环

评论


答:

4赞 stu 12/29/2008 #1

这时没有错,问题出在它上面。 检查注释中的大括号和分号是否不匹配或类似内容。

38赞 JaredPar 12/29/2008 #2

根据这个错误,听起来编译器认为这段代码是直接在类/结构/接口声明的正文中键入的。语句 while/if/for/etc ...必须出现在方法中。

尝试将此代码移动到解决问题的方法中。如果是在方法中,则可能存在大括号不匹配的问题。

2赞 Ali khan 6/22/2011 #3

不允许 C# 将代码直接写入类中;只允许将数据成员和函数成员直接写入类中。

0赞 NealWalters 2/5/2015 #4

如果你有标点符号问题,你也可以得到这个,我今天在缺少一个简单的括号时得到了它:

public static string GetPasswordForEnvironment)

应该是:

public static string GetPasswordForEnvironment()

但是该错误出现在函数后面的第一个“if”语句中。

0赞 santhu Style 3/13/2019 #5

C# 不提供直接在类中编写 for、while 或 foreach 类型的循环语句。这些语句应位于用户定义的方法、main 方法或构造函数中。

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


}