Я бы не хотел объединять их, даже если бы мог. Я думаю, что это хорошая идея, чтобы отделить «проверки» и «обработки».
Как чудовищный хакер, вы могли бы сделать что-то вроде:
switch (Validate(text))
{
case null:
throw ArgumentException("Invalid text");
case "1":
DoSomething();
break;
case "2"
DoSomethingElse();
break;
default:
break;
}
... где Validate
возвращает ноль, если текст недействителен. (Конечно, предполагается, что null не является допустимым значением для начала.)
Но это ужасно. Я бы предпочел увидеть:
if (!IsValid(text))
{
throw ArgumentException("Invalid text");
}
// No need for an else, just proceed with the switch from here