Regex обнаружил предупреждение о недоступном коде

Я довольно новичок в 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; 

2 ответа

У вас есть заявление о возврате до вашего второго заявления if:

return re.IsMatch(txtZip.Text);

Поэтому приведенный ниже код никогда не будет выполнен.

Кроме того, у вас также есть недоступный код ниже вашего второго if, так как оператор if будет возвращать значение в любом случае, поэтому:

return value;
valid=false;

И никогда не выполнит.

Если вы хотите проверить, все поля должны быть полями, а затем, если ZIP совпадает с шаблоном, верните TRUE, иначе FALSE ниже приведенного кода достаточно..

из-за вашего оператора return ранее, если /else является причиной недоступного кода.. потому что этот возврат всегда будет иметь истинное ИЛИ ложное значение для возврата, поэтому он никогда не достигнет условия 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);
Другие вопросы по тегам