Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как бороться с неправильным вводом в C#

Леонид Шурмин Ученик (80), открыт 2 дня назад
я новичок в C#, написал для примера такой код:
int userInput;
Console.Write("Enter Value: ");
userInput = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Value: " + userInput);

я искал, но не нашел как точно сделать защиту от ввода чего то кроме целого числа в переменную.
в с++ надо было в операторе if указать, что делать при ошибке ввода : очистить буфер.

покажите на моем коде как это делается и объясните пожалуйста.
2 ответа
Tommy Cleary Знаток (362) 2 дня назад
можно использовать try-catch чтобы поймать ошибку при неправильном вводе вот так: ```csharpint userInput; Console.Write("Enter Value: "); try { userInput = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Value: " + userInput); } catch (FormatException) { Console.WriteLine("это не целое число"); }``` так будет проще обрабатывать ошибки ввода
Леонид ШурминУченик (80) 2 дня назад
  1. напишите пожалуйста построчно, мне тяжело понять.
  2. закомментируйте пожалуйста процесс обнаружения ошибки
Вася Пупкин Гуру (3165) 2 дня назад
double x1;
Console.Write("Введите x1: ");
if(!double.TryParse(Console.ReadLine(), out x1)) {
do {
Console.WriteLine("неправильный ввод");
Console.Write("введите x1: ");
} while(!double.TryParse(Console.ReadLine(), out x1));
}

var msg = x.Compare (x1) switch {
-1 => $"{x} < {x1}",
0 => $"{x} = {x1}",
+1 => $"{x} > {x1}"
};
Console.WriteLine(msg);
Похожие вопросы