Как только вы начинаете вкладывать, ваша цикломатическая сложность начинает расти.В зависимости от того, насколько сложны ваши вложенные переключатели, это может быть интересно поддерживать.Возможно, вы захотите подумать о переводе второго вложенного переключателя в его собственную функцию.Например,
switch (order.Status)
{
case OrderStatus.New:
// Do something to a new order;
break;
...
case OrderStatus.ReadyToShip
// Process Shipping Instructions
ShipOrder(order);
break;
}
, а затем, если у вас был переключатель, основанный на типе доставки, оплаченном за
void ShipOrder(Order order)
{
switch (order.ShippingMethod)
{
}
}
. Перемещая второй оператор switch из первого, его легче поддерживать,а также может быть испытан в изоляции