2016-10-22 18 views
-2

所以這是我的代碼問題「無定的參數對應到所需的形參」

static void Main(string[] args) 
    { 
     Program.AgeAndLabel(); 
    } 

public static string AgeAndLabel(string userAge) 
    { 
     Console.WriteLine("Enter your age."); 
     int ageValue = int.Parse(Console.ReadLine()); 

     if (ageValue < 18) 
      userAge = "Minor"; 
     else 
      userAge = "Adult"; 

     return userAge; 
    } 

對於Program.AgeAndLabel,我收到錯誤「沒有給出說法,對應於所需'Program.AgeAndLabel(string)'的正式參數'userAge'',我不明白爲什麼。我對這個網站和編碼一般都很陌生,所以如果你有任何建設性的批評讓我知道。

+1

您的AgeAndLabel方法需要userAge參數,您不會提供。但實際上,您不需要userAge作爲參數,只需在AgeAndLabel方法中聲明它即可。 – Martheen

+0

可能我建議你先閱讀一個基本的C#教程?這是一個非常基本的問題,很容易在一個小時左右的時間內修復。 – DavidG

回答

1

從函數參數中移除string userAge,並將其添加到函數內部;那是它需要的地方。問題在於變量不存在於您分配給它的函數範圍內。

另外,您正在調用沒有參數的函數,這意味着您的函數沒有參數。

你的功能也許應該是這個樣子:

public static string AgeAndLabel() 
{ 
    string userAge; 
    Console.WriteLine("Enter your age."); 
    int ageValue = int.Parse(Console.ReadLine()); 

    if (ageValue < 18) 
     userAge = "Minor"; 
    else 
     userAge = "Adult";  
    return userAge; 
} 

如果您已經使用了三元運算符的最後五行可能已經降低到這來代替:

return (ageValue < 18) ? "Minor" : "Adult"; 

,但它只是一個(更短)的方式來表達同樣的事情。 (雖然較少的代碼(通常)意味着錯誤風險較低)

相關問題