1

C#.NET でお粗末なコードを書きましたが、それを最適化したいと考えています。

現時点で考えられるのは、共通部分を別の方法に分けることだけです。

コード :

if(condition1)
{     
   switch(condition)
       case 'A' :   //Some code
        break;
       case 'B' :   //Some code
        break;
       case 'C' :   //Some code
        break;
}

else if(condition2)
{     
   switch(condition)
       case 'a' :   //Some code
        break;
       case 'B' :   //Some code
        break;
       case 'C' :   //Some code
        break;
}

ケース 'B' とケース 'C' のケース ステートメントの条件は共通であることに注意してください。

コードを改善するための助けをいただければ幸いです。

4

4 に答える 4

2

コードブロックが同じコードを実行する必要がある場合は、ケースステートメントをスタックしてみませんか

このような

case 'B' :
case 'C' :
{
//Do Some Code
}
break;
于 2012-08-01T08:52:23.413 に答える
1

そのコードを最適化したとしても、非常に壊れやすく、維持するのが難しいと思います。たとえば、戦略パターンを使用してリファクタリングすることをお勧めします(もちろん可能であれば)。

各ルーチンを分離して OOP 方式で実行すると、将来の変更と保守が容易になるため、多くのメリットがあります。

于 2012-08-01T09:08:14.847 に答える
1

できることは、共通コードをまとめて、そこで追加条件を確認することだけです。

switch(condition)
{
   case 'A':
     if(condition1) //do something
     else //do something
     break;

  case 'a':
   same as above

  case 'B':
    break;

  case 'C':
    break;
}
于 2012-08-01T08:51:15.917 に答える
1
case "a":
case "A":
    if ( condition1) {
        ...
    }
    else if { condition2}
        ...
    }
    break;
于 2012-08-01T08:56:49.237 に答える