2016-06-22 14 views
-1
namespace Tales_Of_Myroth 
{ 
    public class TalesOfMyroth 
    { 
     static void Main(string[] args) 
     { 
      TalesOfMyroth(); //here is my error 
     } 

     private Jogador _jogador; 

     public TalesOfMyroth() 
     { 
      _jogador = new Jogador(); 

      _jogador.VidaAtual = 50; 
      _jogador.VidaMaxima = 50; 
      _jogador.Ouro = 0; 

      Console.WriteLine("Vida: " + _jogador.VidaAtual); 

     } 
    } 
} 

方法のように使用することはできません...誰かがこれで私を助けることができますか? (コードのものはポルトガル語で書かれた)以外のInvocableメンバー「TalesOfMyrothは()」私はちょうど始めた私の大学のための単純なテキストゲームを作るために仮定した

答えて

1

テイルズオブマイロスはClassの名前です。クラスとして使用する必要があります。

static void Main(string[] args) 
    { 
     TalesOfMyroth Tales = new TalesOfMyroth(); 
    } 

それはまた良い、あなたはあなたのプログラムのためのMain classClassを分離した場合。だから、あなたは2 csのファイルを持っています。 1はあなたのMain Class、もう1つはTalesOfMyroth classです。それらの2つのファイルを同じnamespaceの下に置きます。

あなただけfunctionを呼び出したい場合は、その後、あなたはclass name

namespace Tales_Of_Myroth 
{ 
    public class TalesOfMyroth 
    { 
     static void Main(string[] args) 
     { 
      Tales(); 
     } 

     static private Jogador _jogador; 

     public static void Tales() 
     { 
      _jogador = new Jogador(); 

      _jogador.VidaAtual = 50; 
      _jogador.VidaMaxima = 50; 
      _jogador.Ouro = 0; 

      Console.WriteLine("Vida: " + _jogador.VidaAtual); 

     } 
    } 
} 
+0

まだ 'main'から' Tales'にアクセスすることはできません。なぜなのかご存知ですか? –

+0

@ un-luckyが見つかりません 'static'が追加されました。どうも – Mark

1

で別の名前で、あなたのfunctionvoidを追加する必要がありますTalesOfMyrothがここにクラスであるため、public void Tales()がコンストラクタになりますクラスのpolicies of constructorによれば、明示的に呼び出すことはできません。対応するクラスのオブジェクトが作成されると自動的に呼び出されます。

エラーを回避するためにこの画面でできることは、戻り値を与えることによってメソッドとして作成する(コンストラクタは値を返さず、メソッドとして扱われます)。しかし、あなたは静的メインの中の非静的メソッドにアクセスするはずがありません。したがって、静的メソッド(静的メソッドと同様に_jogadorを変更する必要があります)として作成する必要があります。だから、方法はなります:

public static void TalesOfMyroth() 
{ 
    // Code here 
} 

その後、あなたは何をしているかなどのmainからメソッドにアクセスすることができます。

このエラーを削除する別の方法は次のとおりです。メインのクラスのインスタンスを作成します。 TalesOfMyrothが自動的に呼び出されます。

関連する問題