gpt4 book ai didi

c# - C# boolean 函数并非所有代码都返回值

转载 作者:行者123 更新时间:2023-12-02 14:11:36 24 4
gpt4 key购买 nike

我在这里做错了什么?

在函数结束时,我将返回结果。

 public bool  isStipends() 
{
try
{
bool result = true;
if (tbstipend.Text == "" || tbstipend.Text == "Required")
{
tbstipend.Text = "Required";
tbstipend.BackColor = Color.Red;
tbstipend.ForeColor = Color.White;
result = false;
}
else if (tbstipendperperiod.Text == "" || tbstipendperperiod.Text == "Required")
{
tbstipendperperiod.Text = "Required";
tbstipendperperiod.BackColor = Color.Red;
tbstipendperperiod.ForeColor = Color.White;
result = false;
}

else if (tbstipendsperinterval.Text == "" || tbstipendsperinterval.Text == "Required")
{
tbstipendsperinterval.Text = "Required";
tbstipendsperinterval.BackColor = Color.Red;
tbstipendsperinterval.ForeColor = Color.White;
result = false;
}

else if (tbstipendrate.Text == "" || tbstipendrate.Text == "Required")
{
tbstipendrate.Text = "Required";
tbstipendrate.BackColor = Color.Red;
tbstipendrate.ForeColor = Color.White;
result = false;
}
else
{
return result;
}

}
catch
{
return false;
}
}

在按钮后面的代码中,我调用:

 private void btnupdatestipends_Click(object sender, EventArgs e)
{
try
{
if (isStipends() == true)
{
MessageBox.Show("TEST");
}
}
catch { }
}

但是,它给了我函数本身的错误。

Error 3 'AddressBookMaint.Form1.isStipends()': not all code paths return a value C:\Win\AddressBookMaint\AddressBookMaint\Form1.cs 5040 22 AddressBookMaint

有什么建议吗?

谢谢。

最佳答案

错误1

仅当所有 if 都不为 true 时才返回,因为“return”位于最后一个“else”子句中。

解决方案

从最后一个 `else` 中分离出 `return` 并将其放置在 `try` block 中*(甚至放在 try/catch 之外,您也将解决错误 2)*。

错误2

只有在没有异常的情况下才会返回,因为“try” block 末尾有“return”,而“catch” block 中没有“return”。

解决方案

在“catch” block 中添加“return”,代码就会编译。

这是代码的工作版本

public bool  isStipends() 
{
bool result = true;
try
{

if (tbstipend.Text == "" || tbstipend.Text == "Required")
{
tbstipend.Text = "Required";
tbstipend.BackColor = Color.Red;
tbstipend.ForeColor = Color.White;
result = false;
}
else if (tbstipendperperiod.Text == "" || tbstipendperperiod.Text == "Required")
{
tbstipendperperiod.Text = "Required";
tbstipendperperiod.BackColor = Color.Red;
tbstipendperperiod.ForeColor = Color.White;
result = false;
}

else if (tbstipendsperinterval.Text == "" || tbstipendsperinterval.Text == "Required")
{
tbstipendsperinterval.Text = "Required";
tbstipendsperinterval.BackColor = Color.Red;
tbstipendsperinterval.ForeColor = Color.White;
result = false;
}

else if (tbstipendrate.Text == "" || tbstipendrate.Text == "Required")
{
tbstipendrate.Text = "Required";
tbstipendrate.BackColor = Color.Red;
tbstipendrate.ForeColor = Color.White;
result = false;
}
}
catch
{
result = false;
}

return result;
}

关于c# - C# boolean 函数并非所有代码都返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24129856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com