namespace Test
{
static class Program
{
bool keyA = false;
bool keyB = false;
// ...
static void Main(string[] args)
{
foreach (string arg in args)
{
switch (arg.ToLowerInvariant())
{
case "-a":
if(keyA) break;
keyA = true;
// do here also what the A key requires
break;
case "-b":
if(keyB) break;
keyB = true;
// do here also what the B key requires
goto case "-a"; // key B includes the action of key A
// ...
}
}
}
}
}
Единственное, что напрашивается, это продублировать строки кода от ключа А до ключа Б или использовать запихивание всего в методы, но это не выглядит удобным и компактным для просмотра.< /п>
Как реализовать следующий код без перехода и ненужной сложности кода? [code]namespace Test { static class Program { bool keyA = false; bool keyB = false; // ... static void Main(string[] args) { foreach (string arg in args) { switch (arg.ToLowerInvariant()) { case "-a": if(keyA) break; keyA = true; // do here also what the A key requires break; case "-b": if(keyB) break; keyB = true; // do here also what the B key requires goto case "-a"; // key B includes the action of key A // ... } } } } } [/code] Единственное, что напрашивается, это продублировать строки кода от ключа А до ключа Б или использовать запихивание всего в методы, но это не выглядит удобным и компактным для просмотра.< /п>