У меня есть приложение WPF в C#, и для одного из моих текстовых полей вход выполняется, а затем автоматически преобразуется (по Цельсию в Фаренгейт). Когда вы вводите номер, он работает нормально, но после того, как все цифры введенного числа удалены, программа выйдет из строя. Думаю, это потому, что входной формат «недействителен», потому что он просто ничего не пытается преобразовать? Я в тупике о том, как обойти это, любая помощь будет оценена, спасибо!C# Program Crashes When No Number In TextBox
Это мой код в приложении:
private void tempC_TextChanged(object sender, TextChangedEventArgs e)
{
tempC.MaxLength = 3;
Temperature T = new Temperature(celsius);
T.temperatureValueInCelcius = Convert.ToDecimal(tempC.Text);
celsius = Convert.ToDecimal(tempC.Text);
T.ConvertToFarenheit(celsius);
tempF.Text = Convert.ToString(T.temperatureValueInFahrenheit);
}
и это код из API я создал:
public decimal ConvertToFarenheit(decimal celcius)
{
temperatureValueInFahrenheit = (celcius * 9/5 + 32);
return temperatureValueInFahrenheit;
}
Попробуйте использовать Decimal.TryParse. – LarsTech
Если преобразование просто выполняется для отображения в пользовательском интерфейсе (не имеет необходимости в бизнесе), ознакомьтесь с использованием «ValueConverter». –