2012-01-05 19 views
-1

テキストベースのゲームを作成する際にC#のチュートリアルに従っていますが、最初は問題が発生しました。次のコード: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型または名前空間の定義、または終了-of-file expected

イタリック体は、順番にエラーを表します。何らかの理由でVisual C#expressはメソッド定義で{code}を使用せず、コードボックスの中から最後のものをプッシュします。なぜこのようなことが起こるかについてのアイディア

+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

(開く中括弧の前に)あなたの関数宣言の終わりからセミコロンを削除する2 ;

public static void Initialize() 
{ 
} 

private static BuildLevel() 
{ 
} 
+0

ありがとうございます:)。ごめんなさい。 –

0

を削除する必要があります。

0

セミコロンに注意してください。メソッド名とその本文の間にセミコロンがあります。

0

これが問題になることがあります。

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

あなたは戻り値の型を指定していない、とreturn false;は、ブラケットの中に入れなければなりません。