Не могу понять, как остановить выполнение методов после метода c return С#
Есть код метода buttonAdd_Click, и если if писать не в виде отдельного метода return работает и дальнейшие проверки методов не идут, но если вынести код проверки if в метод return не сработает, вопрос почему и как сделать правильно?
private void buttonAdd_Click(object sender, EventArgs e)
{
CheckOverflow();
if (textBoxName.TextLength < 1 || textBoxYear.TextLength < 1 || textBoxPrice.TextLength < 1 || textBoxWeight.TextLength < 1)
{
MessageBox.Show("Заполните TextBox");
return;
}
DataTransfer();
ClearTextBox();
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Можно через возврат bool, как в комментах написано, но можно бросить исключение. Здесь же работа с ошибками, верно?
private void buttonAdd_Click(object sender, EventArgs e)
{
try
{
CheckOverflow();
EnsureTextBoxLength();
DataTransfer();
ClearTextBox();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void EnsureTextBoxLength()
{
if (textBoxName.TextLength == 0
|| textBoxYear.TextLength == 0
|| textBoxPrice.TextLength == 0
|| textBoxWeight.TextLength == 0)
{
throw new Exception("Заполните TextBox");
}
}
При возникновении исключения код не продолжает выполняться, а происходит переход в блок catch.
Но если действовать грамотно, то надо реализовать валидацию данных.