2011-08-03 35 views
-3

Start();で "Overloadは0引数を取る"というエラーが発生しています。私の主な方法のライン。私はそれを修正する方法を知らないし、私は周りを検索して何も見つけることができませんでした。"0"引数をとるオーバーロードはありません[C#]

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 

    namespace ConsoleApplication1 
    { 
     class Program 
     { 
      public static void main(string[] args) 
      { 
       Start(); 
      } 

      public static string Start(string move) 
      { 



       Console.Write(""); 
       string gameType = Console.ReadLine(); 

       if (gameType == "s") 
       { 

        Console.Write(""); 
       begin: 
        Console.Write("\nEnter your move: "); 
        move = Console.ReadLine(); 


        switch (move) 
        { 
         case "r": 
          Console.Write("s"); 
          Console.ReadLine(); 

          break; 
         case "s": 
          Console.Write(""); 
          Console.ReadLine(); 

          break; 
         case "f": 
          Console.Write(""); 
          Console.ReadLine(); 

          break; 
         default: 
          Console.Write("\nInvalid move, try again\n\n"); 


    goto begin; 
       } 
       Console.ReadLine(); 
       return move; 
      } 
      else 
      { 
       return move; 
      } 
     } 


     static string Genius(string genius, string move) 
     { 
      Console.Write(move); 
      return genius; 
     } 


    } 
} 
+1

[velociraptorがあなたを食べる]前のwhileループ(http://xkcd.com/292/)。 –

+0

大丈夫です。 –

+2

一般に、最初のプログラムはHello Worldの行に沿ったものでなければなりません... – Coeffect

答えて

8

開始するメソッド呼び出しが

Start("Something"); 

を編集する必要があります必要があります。他の人が指摘しているとおり開始する何かを渡すにはポイントは()がありません。渡された移動値は無視され、コンソールから読み込まれたものに置き換えられます。コンソールからの動きを読んでいるので、それだけで

public static string Start() 
+1

何かが渡される場合を除いて、 'move = Console.ReadLine();'に置き換えられます。 '。 –

+0

Hehは気づいていませんでした。実際には、元の質問への答えは、おそらく "Start()メソッドの引数を削除"です:D –

2

を読み込みそこで私は単にスタートのパラメータ定義からstring moveを削除して内側に移動、[スタート]()メソッドのシグネチャから引数を削除することをお勧めローカル変数と、それは問題ないはずです。

public static string Start() 
     { string move; 
      ... 

そして、ところで、メインである必要があり、あなたのメイン - C#でのメインは、資本Mを持っている必要があります!

私はC#のいくつかの基本を読むことをお勧めします。

1

ヒント:これはあなたのメソッド呼び出しです:

Start(); 

、これはメソッドのシグネチャです:

public static string Start(string move) 

それらの間の不一致があり...

+0

私は、メインメソッドの後に私のStartメソッドを実行しようとしています、これはそうでしょうか? –

+0

いいえ、あなたはメソッドに渡さなければならない引数 '' move''を宣言しました。 Andersはすでにあなたに正確な答えをくれました。 –

0

あなたのスタート(引数)は次のようになります。

private static string Start() 
{ 
    string move = null; 
    ... 
} 
0

startメソッドは、文字列をパラメータとして想定しています。

例:
Start( "r");
開始( "s");
開始( "f");

+0

エラープログラム 'C:\ Users \ Zack \ AppData \ Local \ Temporary Projects \ ConsoleApplication1 \ obj \ x86 \ Debug \ ConsoleApplication1。exe 'はエントリポイントに適した静的な' Main 'メソッドを含んでいません\t ConsoleApplication1 –

+0

これは、 'Main'を大文字にして、' main'メソッドがそうでないためです。 –

0

スタートは()(アンダースが示唆したように)と呼ばれているか、(スタートから引数を削除)し、代わりにローカル変数として宣言する必要があるときは、引数を渡す必要があり、次のいずれかを使用して後藤を交換し

public static string Start() 
    { 
     string move = string.Empty; 
関連する問題