2016-05-05 55 views
0

我希望我的小的數學程序看起來很圓滑,和我的意思下Main方法我有以下幾種方法:C#錯誤:無法從方法組轉換的Int32

Greet() 
UserInput1() 
UserInput2() 
Result() 

Greet()我只是說「HI」,在UserInput1()我想收集第一個號碼,在UserInput2()我想收集第二個號碼,並在Result()我要打印UserInput1 + UserInput2的結果。我可以收集UserInput 1 and 2中的號碼,但我似乎無法將它們發送到Result(),而沒有在Main()函數下爲它們分配值。

namespace HelloWorld 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Greet(); 
      firstNumber(); 
      secondNumber(); 
      result(firstNumber, secondNumber); 
      Console.ReadKey(); 
     } 

     public static void Greet() 
     { 
      Console.WriteLine("Hello, pls insert two numbers"); 
     } 

     public static int firstNumber() 
     { 
      int num01 = Convert.ToInt32(Console.ReadLine()); 
      return num01; 
     } 

     public static int secondNumber() 
     { 
      int num02 = Convert.ToInt32(Console.ReadLine()); 
      return num02; 
     } 

     public static void result(int num01, int num02) 
     { 

      Console.WriteLine(num01 + num02); 
     } 
    } 
} 

回答

2
變化

此:

result(firstNumber, secondNumber); 

這樣:

result(firstNumber(), secondNumber()); 

並移除在上面的兩行的2種方法的調用。

要調用一個沒有參數的方法,你需要沒有內容的圓括號。

0

呼叫像下面的方法,所以該方法的結果將與來自firstNumber()secondNumber()輸出也被稱爲:

result(firstNumber(),secondNumber()); 

很少有更多的建議:

使該方法Greet()到通過傳遞適當的信息重新使用,然後顯示它。以便您可以對所有顯示操作使用相同的操作。該方法的簽名將是:

public static void Greet(string message) 
{ 
    Console.WriteLine(message); 
} 

方法Convert.ToInt32()將所述給定輸入轉換爲僅在輸入可轉換爲整數值。否則它會拋出FormatException。所以我更喜歡你爲此使用int.TryParse。這將幫助您確定轉換是否成功。所以firstNumber()方法簽名會像下面這樣:

public static int firstNumber() 
{ 
    int num01=0; 
    if(!int.TryParse(Console.ReadLine(),out num01)) 
    { 
    Greet("Invalid input"); 
    } 
    return num01; 
} 

希望你將改變secondNumber()以及

+0

由於平板埃裏克·大衛派恩,幸運的。確實有幫助。 :)) –

1

無法從方法組轉換爲int

此錯誤信息當您試圖採取一種方法(無需調用)並將其作爲一種類型傳遞時發生。 result方法需要類型爲int的兩個參數,但您試圖將方法傳遞給它,而不是方法調用的結果。

您需要的結果存儲在一個變量,或者調用與()方法:

像這樣:

static void Main(string[] args) 
{ 
    Greet(); 
    var first = firstNumber(); 
    var second = secondNumber(); 
    result(first , second); 
    Console.ReadKey(); 
} 

或本:

static void Main(string[] args) 
{ 
    Greet(); 
    result(firstNumber(), secondNumber()); 
    Console.ReadKey(); 
} 
相關問題