8

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

类、结构或接口成员声明中的标记“while”无效

我想使用 while 循环在语句为真时不断更新某些内容。

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

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

它立即给了我编译器错误。不太确定是什么问题。我在 Form1.cs 文件下的 C# windows 应用程序中执行此操作,并带有所有其他事件处理程序(用于按钮等)。谢谢!


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

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

4

5 回答 5

33

基于该错误,听起来编译器认为此代码是直接在类/结构/接口声明的主体中键入的。语句 while/if/for/etc ... 必须出现在方法中。

尝试将此代码移动到解决问题的方法中。如果它在一个方法中,你可能有一个不匹配的括号问题。

于 2008-12-29T02:40:31.317 回答
3

这段时间没有什么问题,问题在于它上面的东西。检查评论或类似内容中是否存在不匹配的大括号和分号。

于 2008-12-29T02:39:55.437 回答
2

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

于 2011-06-22T08:47:38.010 回答
0

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

public static string GetPasswordForEnvironment)

本来应该:

public static string GetPasswordForEnvironment()

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

于 2015-02-05T14:52:32.867 回答
0

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

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


}
于 2019-03-12T18:40:08.850 回答