-1

テキストベースのゲームを作成するための 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 ではメソッド定義で { を使用できず、最後の } をコード ボックスから押し出してしまいます。なぜこれが起こるのかについてのアイデアはありますか?

4

7 に答える 7

2
public static void Initialize();

private static *BuildLevel*();

それらは宣言です。後に続くことはできません{ }。を削除する;と動作します。

private static TYPEHERE *BuildLevel*();

これには戻り型がありません。

于 2012-01-05T22:07:28.030 に答える
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;
        }

    }
}
于 2012-01-05T22:08:54.097 に答える
1

2つを削除します;

public static void Initialize()
{
}

private static BuildLevel()
{
}
于 2012-01-05T22:07:49.620 に答える
0
public static void Initialize();
{
}

する必要があります

public static void Initialize()
{
}
于 2012-01-05T22:07:38.607 に答える
0

関数宣言の末尾 (左中かっこの前) からセミコロンを削除します。

于 2012-01-05T22:07:58.030 に答える
0

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

于 2012-01-05T22:08:23.643 に答える
0

これが問題かもしれません:

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

戻り値の型を指定していませんreturn false;。括弧内にある必要があります。

于 2012-01-05T22:08:41.900 に答える