C # Вьющиеся скобки проблема - PullRequest
0 голосов
/ 06 января 2012

Я следую учебному пособию по созданию текста на C # и столкнулся с проблемой в самом начале.Следующий код:

namespace GameV2
{
    class Level
    {
        private static Room[,] rooms;

        #region Properties
        public static Room[,] Rooms
        {
            get { return rooms; }
        }
        #endregion


        public static void Initialize();
    *{*
    }

        private static *BuildLevel*();
    {
    }
        return false;


    }
*}*

дает мне 3 ошибки.

Ошибка 1 Недопустимый токен '{' в объявлении члена класса, структуры или интерфейса

Ошибка 2 Ожидаемый класс, делегат, перечисление, интерфейс или структура
Тип ошибки 3или определение пространства имен, или ожидаемый конец файла

Курсив представляет ошибки по порядку.По какой-то причине Visual c # express не позволяет мне использовать {в определении метода и выталкивает мой final} из поля кода.Любые идеи о том, почему это происходит?

Ответы [ 7 ]

2 голосов
/ 06 января 2012
public static void Initialize();

private static *BuildLevel*();

Это декларации . Они не могут сопровождаться { }. Удалите ; и все заработает.

private static TYPEHERE *BuildLevel*();

Отсутствует тип возврата.

2 голосов
/ 06 января 2012
  • У вас нет точек с запятой после методов. Вы можете путать их для C прототипы метода.

  • BuildLevel должен иметь тип возврата.

  • Все операторы должны быть внутри методов, вы можете иметь объявления только вне методов

Это должно скомпилировать:

namespace GameV2
{
    class Level
    {
        private static Room[,] rooms;

        #region Properties
        public static Room[,] Rooms
        {
            get { return rooms; }
        }
        #endregion


        public static void Initialize()
        {
        }

        private static bool BuildLevel()
        {
            return false;
        }

    }
}
1 голос
/ 06 января 2012

Удалить два ;

public static void Initialize()
{
}

private static BuildLevel()
{
}
0 голосов
/ 06 января 2012

Это может быть проблемой:

private static *BuildLevel*();
    {
    }
        return false;

Вы не указали тип возврата, и return false; должно быть в скобках.

0 голосов
/ 06 января 2012

Остерегайтесь точек с запятой.У вас есть точки с запятой между именами методов и их телами.

0 голосов
/ 06 января 2012

Удалите точки с запятой в конце объявлений функций (перед открывающей фигурной скобкой).

0 голосов
/ 06 января 2012
public static void Initialize();
{
}

должно быть

public static void Initialize()
{
}
...