2016-05-07 9 views
0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace heavynumbers2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      HeavyDeciCount(); 
      int firstNumber; 
      int secondNumber; 
      Console.Write("Enter First Number: "); 
      firstNumber = int.Parse(Console.ReadLine()); 
      Console.Write("Enter Second Number: "); 
      secondNumber = int.Parse(Console.ReadLine()); 
     } 

     public static void HeavyDeciCount(int firstNumber, int secondNumber) 
     { 
      var totalHeavyCount = 0; 
      for (int i = firstNumber; i <= secondNumber; i++) 
      { 
       var avg = i.ToString() 
        .Select(o => Convert.ToInt32(o.ToString())) 
        .ToArray() 
        .Average(); 
       var isHeavy = false; 
       if (avg > 7) 
       { 
        isHeavy = true; 
        totalHeavyCount++; 
       } 
       Console.WriteLine("HeavyNumbers" + "Average" + "IsHeavy"); 
       Console.WriteLine(i + " " + avg + " " + (isHeavy ? "Yes" : "No")); 
      } 
      Console.WriteLine("Total Heavy Count: " + totalHeavyCount); 
      Console.WriteLine("Press Enter to Close Program "); 
      Console.ReadLine(); 
     } 
    } 
} 

私はこのプログラムを実行していないと私はメインメソッドでメソッドを呼び出すようにしようとすると、コンパイラは言う:過負荷メソッドをC#コンソールアプリケーションが壊れていますか?

はあなたheavydeciCount方法

に対して定義するとプログラムが異常終了します。

私はここで間違っていますか?あなたは0渡し

public static void HeavyDeciCount(int firstNumber, int secondNumber) 

int firstNumber; 
int secondNumber; 
Console.Write("Enter First Number: "); 
firstNumber = int.Parse(Console.ReadLine()); 
Console.Write("Enter Second Number: "); 
secondNumber = int.Parse(Console.ReadLine()); 

HeavyDeciCount(firstNumber, secondNumber); // you call the method with 2 numbers after you already have them 

問題:

HeavyDeciCount(); // no arguments are being passed 

あなたはおそらく、あなたのコードはそうのように再配置していると思った

答えて

1

あなたの方法は、2つの引数を受け付けますコンパイラは、overloadedメソッドをに見つけると予想しているという不満があります10引数は0を受け取りますが、そのようなメソッドは存在しません。

+0

を。それらの下に赤い線があります。それを解決する方法が分かっているなら、私を案内してください。 –

+0

@BilalMujahid私はあなたのために働く詳しい説明とコードで私の答えを編集しました。メソッドのオーバーロードを理解するためのリンクも読んでください。 – Idos

+0

メソッドを親切に呼び出す方法は、メソッドをタイプすることで説明することができます。 –

0

メソッドに必要なパラメータは渡していません。 firstNumbersecondNumberを取得した後、メソッドを呼び出して渡します。

したがって、このような主な方法で変更します。私は、パラメータとしてint型firstNumber、int型secondNumberを渡していると私はそれを受け入れていない理由を知らない

static void Main(string[] args) 
    { 
     int firstNumber; 
     int secondNumber; 
     Console.Write("Enter First Number: "); 
     firstNumber = int.Parse(Console.ReadLine()); 
     Console.Write("Enter Second Number: "); 
     secondNumber = int.Parse(Console.ReadLine()); 

     HeavyDeciCount(firstNumber,secondNumber); 

    } 
+0

ありがとう私は考え出しました。アレックス私はこのウェブサイトで私はあなたの指導を受けることができるようないくつかのプログラミングエラーがあるときにあなたに従うことができます。 –

+0

StackOverFlowにはフォローオプションがありません。しかし、あなたはいつでも私に電子メールを送ることができます。私は喜んでお手伝いします。私のプロフィールでメールを見つけることができます。 –

+0

Ok Thanks Alex。 –

関連する問題