Недопустимый токен while в объявлении члена класса, структуры или интерфейса в очень простом коде - PullRequest
7 голосов
/ 29 декабря 2008

Я не уверен, в чем проблема, но я продолжаю получать эту ошибку, когда пытаюсь использовать оператор while в своем коде.

Неверный токен while в классе, структура или интерфейсный член Объявление

Я хочу использовать цикл while, чтобы что-то постоянно обновлялось, пока утверждение верно.

Остальная часть моего кода довольно длинная, но всякий раз, когда я набираю синтаксис:

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

Это сразу дает мне ошибку компилятора. Не совсем уверен, в чем проблема. Я делаю это в приложении C # Windows в файле Form1.cs со всеми другими обработчиками событий (для кнопок и тому подобное). Спасибо!


Я не знал, что циклы должны быть размещены в методе (довольно новом для c #), но я попробовал это, и никаких ошибок не было возвращено. Всем спасибо за помощь!

Раньше у меня был только цикл внутри основного класса программы.

Ответы [ 5 ]

29 голосов
/ 29 декабря 2008

Судя по ошибке, компилятор считает, что этот код набран непосредственно в теле объявления класса / структуры / интерфейса. Операторы while / if / for / etc ... должны появляться в методе.

Попробуйте переместить этот код в метод, чтобы решить проблему. Если это метод, у вас, вероятно, проблема с несоответствующей скобкой.

3 голосов
/ 29 декабря 2008

Пока что нет ничего плохого, проблема в этом. Проверьте несоответствующие скобки и точки с запятой в комментарии или что-то в этом роде.

2 голосов
/ 22 июня 2011

C # запрещено писать код непосредственно в классы; разрешено записывать только элементы данных и функции-члены непосредственно в классы.

0 голосов
/ 12 марта 2019

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


}
0 голосов
/ 05 февраля 2015

Вы также можете получить это, если у вас есть проблемы с пунктуацией, я получил это сегодня, когда пропустил простые скобки:

public static string GetPasswordForEnvironment)

должно было быть:

public static string GetPasswordForEnvironment()

Но ошибка обнаружилась в первом операторе «if» позже в функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...