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

Posted

技术标签:

【中文标题】非常简单的代码中的类、结构或接口成员声明中的标记“while”无效【英文标题】:Invalid token 'while' in class, struct, or interface member declaration in very simple code 【发布时间】:2010-09-28 15:53:25 【问题描述】:

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

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

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

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

while(a<b)

//do whatever i want it to do here

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


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

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

【问题讨论】:

【参考方案1】:

while 没有什么问题,问题出在它上面。 检查评论或类似内容中是否存在不匹配的大括号和分号。

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

public static string GetPasswordForEnvironment)

应该是:

public static string GetPasswordForEnvironment()

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

【讨论】:

【参考方案5】:

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



【讨论】:

以上是关于非常简单的代码中的类、结构或接口成员声明中的标记“while”无效的主要内容,如果未能解决你的问题,请参考以下文章

Swift 函数中的动态修饰符

java中的接口interface

C#接口

将成员保存在数据结构中的另一种方法

PetaPoco的T4模板报错的问题

编译器无法识别实现文件中的类成员函数类型但在接口文件中识别