Такой вопрос.
У меня есть цикл, который обрабатывает входной параметр, следит за тем, что вводит пользователь.
Т.е. он должен вводить четные числа, если он введет символ, дробное число, букву и т.д., то выпадает сообщение об ошибке. И так на каждую переменную. А как сделать, чтобы он не выдавал сразу сообщение, а записал все что ввел пользователь и в конце только выдал общее сообщение об ошибке, что несколько параметров было введено не правильно?
Код циклаstatic int GetInput(string paramName, Severity ex)
{
//задаем произвольное начальное значение
int result = Int32.MinValue;
//цикл обработки значения
while (true)
{
try
{
Console.Write($"\nВведите значение <{paramName}>: ");
var x = Console.ReadLine();
int xi = int.Parse(x);
result = xi;
if (xi % 2 == 0)
{
break;
}
Throw(ex);
throw new System.FormatException();
}
//сообщение об ошибке на ввод нечетного числа
catch (ArgumentNullException) { }
//сообщение об ошибке на ввод букв, дробных значений и т.д.
catch (System.FormatException)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.Black;
Console.WriteLine("\n***********************************************************************");
Console.WriteLine("*Ошибка: Один из идентифицированных элементов имел недопустимый формат*");
Console.WriteLine("***********************************************************************");
Console.ResetColor();
}
}
return result;
}
Отработка кода
Введите значение <a>: вап
***********************************************************************
*Ошибка: Один из идентифицированных элементов имел недопустимый формат*
***********************************************************************
Как должно быть
Введите значение <a>: вап
Введите значение <b>: 1.5
Введите значение <c>: ...
***********************************************************************
*Ошибка: Один из идентифицированных элементов имел недопустимый формат*
***********************************************************************
Введенное значение <a>: вап
Введенное значение <b>: 1.5
Введенное значение <c>: ...
***********************************************************************
Введите значение <a>: