2012-01-05 2 views
-1

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

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 Тип или определение пространства имен или конечного ожидаемый файл

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

+0

вы не должны «;» перед каждым прототипом метода. – IanNorton

+0

BuildLevel() не имеет типа возврата – IanNorton

ответ

2
  • У вас нет точек с запятой после методов. Вы можете ввести их в заблуждение для прототипов метода 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; 
     } 

    } 
} 
2
public static void Initialize(); 

private static *BuildLevel*(); 

Те декларации. За ними не может следовать { }. Удалите ;, и он будет работать.

private static TYPEHERE *BuildLevel*(); 

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

0
public static void Initialize(); 
{ 
} 

должен быть

public static void Initialize() 
{ 
} 
1

Удалите два ;

public static void Initialize() 
{ 
} 

private static BuildLevel() 
{ 
} 
+0

спасибо, ребята :). Извините за вопрос noob –

0

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

0

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

0

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

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

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