2017-07-25 129 views
-2

我對c#編程比較陌生。我正在使用Forms,並且我想在文本框中打印一個不工作的值。我得到一個錯誤,如果被選中你的盒子「並非所有的代碼路徑返回一個值」如何用另一種方法調用方法返回?

public void button1_Click(object sender, EventArgs e) 
{ 
    double res = test(); 
    tbox.Text = res.ToString(); 

} 

public double test() 
{ 
    if (Cbtest.Checked == false) 
    { 
     return 10 + 5.1; 
    } 
} 
+6

假設'Cbtest.Checked'爲真,那你又回來了什麼? –

+0

你看到什麼行爲?你遇到了什麼錯誤? – Ortund

+0

如果Cbtest.Checked == true –

回答

0

的問題是與test方法,你需要考慮Cbtest.Checked==true狀況以及否則你的代碼將產生錯誤,如「並非所有的代碼路徑返回一個值」,讓你更好更改簽名像以下:

public double test() 
{ 
    if (!Cbtest.Checked) 
    { 
     return 10 + 5.1; 
    } 
    return 0.0; // or some other values 
} 
0

嘗試返回的東西:

public double test() 
{ 
    if (Cbtest.Checked == false) 
    { 
     return 10 + 5.1; 
    } 
    return -1.0; 
} 

你的方法總是需要,即使有一個返回值,你知道條件將是false,編譯器不會。

+0

不是C#有一個「盒裝」的'double'類型;如果該框未被選中,你可以返回「null」? – Bathsheba

+0

你應該小心你對這些類型的問題所說的話......毫無疑問,即使是最細微的錯誤陳述,你也會被分辨出來。例如,它並不總是需要返回值 – musefan

+2

@Bathsheba,它是一個「double」而不是「double」......因此它不可能返回'null' – Rahul

相關問題