2017-07-07 39 views
0

私のコードは以下のとおりです。どんな助けもありがとう。私はそれが簡単な間違いであれば、事前にお詫びします。私はまだC#の初心者です(一般的にオブジェクト指向です)。「なぜ静的でないフィールドにオブジェクト参照が必要ですか」がわかりません

public class Game1 : Microsoft.Xna.Framework.Game 
{ 
    public void Update() 
    { 
     Levels level = new Levels(); 
     Game1 mainGame = Game1; 
     Levels.AliensSetUp(1, 2, 50, 0, 0, 0, mainGame); 
    } 
} 

class Levels 
{ 
    public void AliensSetUp(int numberRows, int numberColumns, int spaceBetween, int XStart, int YStart, int AlienType, Game1 mainGame) 
} 

エラー "がLevels.AliensSetUp(1、2、50、0、0、0、mainGame)" の "mainGame" です。私はまた、 "mainGame"を "game1"だけに置き換えようとしましたが、それもエラーです。何か助けてくれてありがとう。

+2

(https://msdn.microsoft.com/en-us/library/aa645629(V = vs.71).aspxの) 。あなたが欠けている基本的なオブジェクト指向プログラミングの概念がいくつかあります。 –

+0

クラスの名前( 'Levels')を使って' AliensSetUp'メソッドを呼び出そうとしています。代わりに、作成したオブジェクトのインスタンス( 'level')を使用する必要があります。あなたの質問のコードに基づいて、 'level.AlensSetUp(...)'になります。 –

+0

それはそれを修正しました - ありがとう! – Hychet

答えて

3

レベルは静的ではありません。 Levelsクラスを "新規"にして、そのAliensSetUp()メソッドを呼び出します。例:あなたは[C#でインスタンスメンバーVS静的メンバー]について学ぶ必要が

var levels = new Levels(); 
levels.AliensSetup(...) 
+0

彼はGame1で何もしなかった。彼はタイプ自体をタイプのインスタンスに割り当てることを試みています。彼は、「インスタンス」と「静的」が何を意味するのかを知りません。 –

+0

ありがとうございました。それは次のようにする必要があります:var levels = new Levels(); levels.AliensSetup ... –

+0

私はそれが答えではなく、コメントに属していると思います。 –

関連する問題