我为第二个if语句检测到无法访问的代码。你能告诉我出了什么问题吗?
private bool ValidateSettings()
{
if (chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text))
{
divAppDownloadError.Visible=true;
return false;
}
else
{
return true;
}
if (chkpplaORfmp.Checked && String.IsNullOrEmpty(txtfmpORppla.Text))
{
divXPAAPPDownloadError.Visible = true;
return false;
}
else
{
return true;
}
}
答案 0 :(得分:26)
这是因为第一个if/else
块将以任一方式返回 - 该块之后的代码不会执行:
if(chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text))
{
// You either return here
divAppDownloadError.Visible=true;
return false;
}
else
{
// or here - after this statement how can anything
// else possible execute?
return true;
}
答案 1 :(得分:3)
也许你想删除else
块,最后只返回true
。
如果任何设置不符合预期,您似乎想要返回false
。让:
condition1 = chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text)
condition2 = chkpplaORfmp.Checked && String.IsNullOrEmpty(txtfmpORppla.Text)
编写方式,我们有
你想要的是:
答案 2 :(得分:1)
您的代码与此相当,因为if
和else
都包含return语句:
private bool ValidateSettings()
{
if(chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text))
{
divAppDownloadError.Visible=true;
return false;
}
return true;
}
答案 3 :(得分:0)
Samuel Carrijo是对的;我认为您的意思是检查是否存在任何无效条件,如果有,请返回false
。但是为了检查它们,你不能在结束前返回true
:
private bool ValidateSettings()
{
if (chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text))
{
divAppDownloadError.Visible=true;
return false;
}
if (chkpplaORfmp.Checked && String.IsNullOrEmpty(txtfmpORppla.Text))
{
divXPAAPPDownloadError.Visible = true;
return false;
}
// if you've gotten this far, neither of the
// invalidating conditions above were held;
// so you're good!
return true;
}
答案 4 :(得分:0)
private bool ValidateSettings()
{
if ((chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text))||
(chkpplaORfmp.Checked && String.IsNullOrEmpty(txtfmpORppla.Text)))
{
if (chkDownload.Checked)
divAppDownloadError.Visible=true;
else divXPAAPPDownloadError.Visible = true;
return false;
}
return true;
}
简化代码
答案 5 :(得分:0)
private bool ValidateSettings()
{
if (chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text) && chkpplaORfmp.Checked && String.IsNullOrEmpty(txtfmpORppla.Text))
{
divAppDownloadError.Visible = true;
divXPAAPPDownloadError.Visible = true;
return false;
}
if ((chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text)) || (chkpplaORfmp.Checked && String.IsNullOrEmpty(txtfmpORppla.Text)))
{
if (chkDownload.Checked && String.IsNullOrEmpty(txtAppName.Text))
{
divAppDownloadError.Visible = true;
divXPAAPPDownloadError.Visible = false;
}
else
{
divXPAAPPDownloadError.Visible = true;
divAppDownloadError.Visible = false;
}
return false;
} return true;
}
这是有效的