2017-12-19 32 views
-7

なぜこのコードを実行しているのですが、2番目の方法の質問は繰り返されますか?メソッドが誤って2回実行されている

using System; 

namespace mdisafmidf 
{ 
    class MainClass 
    { 
     public static void Main(string[] args) 
     { 
      Console.WriteLine("Hello world!"); 
      CallMethod0(); 
      Console.WriteLine(CallMethod0()); 
      Console.ReadKey(); 
     } 
     public static string CallMethod0() 
     { 
      string x; 
      Console.WriteLine("Do you agree this is a good day?"); 
      Console.WriteLine("a)Yes b)No"); 
      x = Console.ReadLine(); 
      if (x == "Yes") 
      { 
       return ("Of course this is a good day"); 
      } 
      else 
      { 
       return ("Oh, try and stay more positive!"); 
      } 
     } 
    } 
} 
+8

私はデバッガやprintステートメントで簡単にデバッグすることができ、他のユーザーには価値がないので、この質問をトピックとしてクローズすることにしました。 –

答えて

2

、それは文字列を返します。結果を文字列変数に格納し、次に変数をConsole.Writeに格納する必要があります。そこにメソッド呼び出しが2回あるので、2回実行しています。言い換えれば

、それを変更する:あなたは二回CallMethod0()を使用している

public static void Main(string[] args) 
{ 
    Console.WriteLine("Hello world!"); 
    string result = CallMethod0(); // store the result like this 
    Console.WriteLine(result); // print the result - don't call the method again 
    Console.ReadKey(); 
} 
+0

心配する必要はなく、無駄ではありません。 –

+0

申し訳ありませんが、私はこのコミュニティには本当に新しいので、私は周りを回そうとしています。 – Alex

+2

@Alex私たちは皆、ある時点でそれほど知っていました。ようこそ。フレンドリーなアドバイスの言葉:ちょうど忍耐強く、個人的にもあまりにもダウンボートを取らないようにしてください。 – Amy

7

メソッドを2回呼び出すので、2回実行されます。

CallMethod0(); 
Console.WriteLine(CallMethod0()); 
0

ただ、このようになり、あなたのコードを変更:あなたはCallMethod0を実行すると

var message = CallMethod0(); 
Console.WriteLine(message); 
0


あなたの上にCallMethod0();Console.WriteLine(callMethod0());
CallMethod0();を削除すると正常に動作します。

関連する問題