Лучший способ добиться того, что вы пытаетесь сделать в целом, - это использовать исключение.Подумайте, написали ли мы AddNumbers так:
public static int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result <= 10)
{
throw new Exception("Should be more than 10");
}
return result;
}
и нашу основную логику:
try
{
int result = AddNumbers(3, 3);
}catch(Exception e)
{
Console.WriteLine(e.Message); // must've been > 10
return;
}
Способ, которым это работает, когда AddNumbers встречает поведение, которое не ожидается или недопустимо,это бросит исключение.Теперь, когда мы вызываем AddNumbers, мы должны сделать это в блоке try-catch, чтобы перехватить это исключение, если оно было сгенерировано.Этот подход более чистый и менее запутанный, чем использование Tuple, который по сути заново изобретает колесо в этом сценарии.
Таким образом, если наши числа добавить меньше 10, AddNumbers выдает исключение, которое затем перехватывается внаша основная логика и вошла в консоль, печатая «Должно быть больше 10.»1015 * Это имеет преимущество, заключающееся в том, что оно намного проще, но недостатком является то, что мы должны помнить, что нужно включать это выражение if каждый раз, когда мы используем AddNumbers.Маршрут исключения - лучший дизайн, если мы хотим добавить больше проверок, например, если вы хотите, чтобы результат был меньше 30, делился на 2 и т. Д., Вы можете просто продолжать добавлять новые исключения.Однако, если вам нужно только проверить, больше ли результат, чем 10, в целом, может быть проще использовать этот последний параметр.