Сложное if-утверждение в событии с текстовым изменением - PullRequest
0 голосов
/ 16 мая 2018

Я хочу реализовать сложное if-утверждение.Оператор if находится в событии с текстовым изменением в текстовом поле.Если выражение if дает true, должен быть загружен pdf-файл.Проблема не в том, как загрузить PDF-файл, он уже работает, а в том, как установить оператор if.Там должны быть запрошены следующие условия:

В позиции 0 должна быть буква "S", в позиции 1 - буква "E", в позиции 2 - буква "H", позиция 3 не имеет значения, позиции 4-7 представляют число, и число должно быть от 0-3000 (не должно превышать 3000), в позиции 8 снова должно быть "H" или "R"

Я попробовал этос методом IndexOf (), и он работает для первых 3 символов, но в связи с 8-м знаком он больше не работает.Я думаю, что это связано с тем фактом, что "H" уже существует в позиции 2.

Чтобы проверить число, с которым я пытался это сделать: Convert.ToInt32 (textBox1.Text.Substring (4, 4)) <=3000 </p>

Но это тоже не сработало.

1 Ответ

0 голосов
/ 16 мая 2018
private static bool ShowPdf(string str)
{
    if (str[0] != 'S')
        return false;
    else if (str[1] != 'E')
        return false;
    else if (str[2] != 'H')
        return false;
    else if (str[8] != 'H' && str[8] != 'R')
        return false;
    else if (int.TryParse(str.Substring(4,4), out int number)
        return (number >= 0 && number <= 3000);
   return true;
}
...