Это буквально моя первая программа, которую я когда-либо писал (начал изучать прошлый понедельник); Я новичок.Валидация ввода с плавающим/двойным типом в C#
Мой вопрос в том, как я могу предотвратить исключение исключений из-за того, что пользователь вводит недопустимый символ, когда программа запрашивает пользователя для входа fahreinheit или celsius (ожидающего числа) ??? Например, когда пользователь вводит «asfasd», программа выдает исключение.
Я сделал много поиска на сайте, прежде чем публиковать его, и я смог найти другие вопросы проверки ввода, однако все они касались C и C++, и поскольку я такой новичок, у меня есть жесткий с пониманием этих языков и тем, как они относятся к C#. Спасибо. Пожалуйста, смотрите код:
using System;
namespace Converter
{
class Program
{
static void Main()
{
float? FahrenheitInput = null;
double? CelsiusInput = null;
float? KilogramInput = null;
float? PoundsInput = null;
int UserChoice = 0;
do
{
Console.WriteLine("What would you like to convert? Enter the corresponding number.\n1. Fahrenheit to Celsius");
Console.WriteLine("2. Celsius to Fahrenheit\n3. Pounds to Kilograms\n4. Kilograms to pounds\n5. Exit program");
UserChoice = int.Parse(Console.ReadLine());
switch (UserChoice)
{
case 1:
Console.WriteLine("Enter the temperature in Fahreinheit, number only:");
FahrenheitInput = float.Parse(Console.ReadLine());
Console.Clear();
Console.WriteLine(FahrenheitInput + " degrees fahrenheit in Celsius is " + Program.FahrenheitToCelsius(FahrenheitInput) + "\n\n");
break;
case 2:
Console.WriteLine("Enter the temperature in Celsius, number only:");
CelsiusInput = double.Parse(Console.ReadLine());
Console.Clear();
Console.WriteLine(CelsiusInput + " degrees Celius in fahrenheit is " + Program.CelsiusToFahrenheit(CelsiusInput) + "\n\n");
break;
case 5:
break;
default:
Console.WriteLine("This is not a valid entry. Please enter 1, 2, 3, 4, or 5.");
break;
}
} while (UserChoice != 5);
}
public static float? FahrenheitToCelsius(float? INPUT)
{
return (INPUT - 32) * 5/9;
}
public static double? CelsiusToFahrenheit(double? INPUT)
{
return INPUT * 1.8 + 32;
}
}
}
вы ищете попытку catch https://msdn.microsoft.com/library/0yd65esw.aspx или регулярное выражение, но когда вы начинаете на этой неделе прочитал статью о попытке поймать – SeeuD1