Я столкнулся с этим огромным методом, где у меня есть много операторов if else типа
else if (ptName == "Missile" ||
ptName == "Telephone" ||
(ptName.StartsWith("Car") && gasTank.ValueFloat1.Value < 90))
{
foo_1 = "some_string";
}
К сожалению, этот код не совсем корректен, поскольку переменная gasTank определяется только в тех случаях, когда ptName начинается со строки «Car». Таким образом, во время выполнения я получаю
Возникла InvalidOperationException: нулевой объект должен иметь значение.
Эту проблему можно решить, вложив ifs и else if, а также повторив условие ptName.StartsWith("Car")
, хотя это крайне нежелательно.
Разделение метода на множество маленьких или добавление возврата после каждого условия не является опцией, поскольку возвращение метода представляет собой объединение различных foo_i
.
Заранее спасибо.