[英]Error on Not all code paths return a value
我的代碼有問題嗎? 我不太確定如何解決它。 幾天來一直困擾着我,我無法入睡和安寧地吃飯。 幫我。 我要死了。 我可能會誇大其詞,但他們說我的帖子主要是編碼,我必須添加更多詳細信息。 這還不夠嗎?
static void Main(string[] args)
{
dailyspend(ref totalspendf, ref totalspendc, ref totalspendcr, ref totalspendo);
}
static double dailyspend(ref double totalspendf, ref double totalspendc, ref double totalspendcr, ref double totalspendo)
{
int days;
double spendf = 0, spendc = 0, spendcr = 0, spendo = 0;
for (days = 1; days <= 7; days++)
{
Console.WriteLine("");
Console.Write("Food : ");
spendf = double.Parse(Console.ReadLine());
Console.Write("Clothing : ");
spendc = double.Parse(Console.ReadLine());
Console.Write("College related : ");
spendcr = double.Parse(Console.ReadLine());
Console.Write("Outside: ");
spendo = double.Parse(Console.ReadLine());
Console.WriteLine("");
totalspendf += spendf;
totalspendc += spendc;
totalspendcr += spendcr;
totalspendo += spendo;
}
}
您的方法dailyspend()
指定它將返回一個double
,但在任何地方都不會調用return
。
添加return
+應該返回的值。
發生此錯誤的原因是您的方法應返回簽名中定義的double
精度值。 但是,它不返回任何內容,因為您沒有提供有關要返回的值的任何信息。 一個方法只能有一個或沒有返回值,但是我想您想讓您的方法返回四個不起作用的值-至少不使用return
。
我假設您的方法不需要任何返回值。 因此,將方法return-type更改為void
應該適合您。 但是,您仍然必須在Main
聲明所有變量,然后才能通過引用傳遞它們。
static void dailyspend(ref double totalspendf, ref double totalspendc, ref double totalspendcr, ref double totalspendo)
{
int days;
for (days = 1; days <= 7; days++)
{
Console.WriteLine("");
Console.Write("Food : ");
double spendf = double.Parse(Console.ReadLine());
Console.Write("Clothing : ");
double spendc = double.Parse(Console.ReadLine());
Console.Write("College related : ");
double spendcr = double.Parse(Console.ReadLine());
Console.Write("Outside: ");
double spendo = double.Parse(Console.ReadLine());
Console.WriteLine("");
totalspendf += spendf;
totalspendc += spendc;
totalspendcr += spendcr;
totalspendo += spendo;
}
}
現在您可以這樣稱呼它:
double totalspendf = 0, totalspendc = 0, totalspendcr = 0, totalspendo = 0;
dailyspend(ref totalspendf, ref totalspendc, ref totalspendcr, ref totalspendo)
現在,您可以使用引用傳遞的四個參數來執行任何操作,例如
Console.WriteLine(totalspendf);
在您的方法中,該選項應打印Food
的所有輸入的總和。
如果您將方法聲明為void
或Task
以外的其他方法,您需要確保所有可能的代碼路徑都有有效的return
或拋出Exception
。
幸運的是,對於您的函數dailyspend
,您只有一條可能的代碼路徑,因此您只需在該行下的任何地方簡單地添加一個return
(我想您希望它成為for
循環正下方的行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.