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);