0

我对 C# 相当陌生,并且觉得这可能是一个显而易见的答案,因为我理解错误的含义——但我终生无法看到如何修复它!我的第二个 if 语句收到“检测到无法访问的代码”警告,所以我意识到它没有被调用,我只是不明白我的错误在哪里,或者如何修复它。任何帮助将不胜感激!

我遇到问题的代码片段是:

bool valid = true;
if (txtFirst.Text.Length < 1 || txtLast.Text.Length < 1 || txtAddress.Text.Length < 1 || txtCity.Text.Length < 1 || txtState.Text.Length < 1)
{
    return false;
}

string usZip = @"^\d{5}$|^\d{5}-\d{4}$";
Regex re = new Regex(usZip);

return re.IsMatch(txtZip.Text);

if (re.IsMatch(txtZip.Text))
    return (true);
else
    return (false);
return valid;
valid = false; 
4

2 回答 2

2

您在第二个 if 语句之前有一个 return 语句:

return re.IsMatch(txtZip.Text);

所以下面的代码永远不会执行。

此外,您的第二个 if 下方还有无法访问的代码,因为该 if 语句在任何一种情况下都会返回一个值,因此:

return value;
valid=false;

也永远不会执行。

于 2015-05-21T03:59:04.387 回答
0

如果你想检查所有字段应该是字段然后如果 ZIP 匹配模式返回TRUE否则FALSE 下面的代码就足够了..

因为你在if/else之前的 return 语句是无法访问代码的原因.. 因为该 return 将始终返回true 或 false值,因此它永远不会达到IF/ELSE条件..

我认为下面的代码是你想要的..检查出来..

    if (txtFirst.Text.Length < 1 || txtLast.Text.Length < 1 || txtAddress.Text.Length < 1 || txtCity.Text.Length < 1 || txtState.Text.Length < 1)
    {
        return false;
    }

    string usZip = @"^\d{5}$|^\d{5}-\d{4}$";
    Regex re = new Regex(usZip);
    return re.IsMatch(txtZip.Text);
于 2015-05-21T04:05:17.637 回答