0

構成ファイルを使用して、コンパイル時または実行時に行うことができます。単純な (そして多くの) if ステートメントよりもエレガントな方法はありますか?

私は特に、特定の機能用の UI コントロールのセットをターゲットにしています。

4

3 に答える 3

3

プログラムで 100% のパフォーマンスを引き出す必要がない限り、構成ファイルを使用してください。コードをよりクリーンに保ちます。

1 つのオプションがコードの多くの部分を変更する場合は、多くの条件を記述するのではなく、委譲先のクラスを選択する 1 つの条件を記述します。たとえば、設定で TCP と UDP を選択する場合、コードの残りの部分で使用する TcpProvider または UdpProvider を条件付きでインスタンス化し、手間や手間を最小限に抑えます。

于 2008-09-17T21:55:12.020 に答える
2

コンパイラ指令はそれほど柔軟ではありませんが、状況によっては適切です。

たとえば、デフォルトでは、VS.NETでDEBUGモードでコンパイルすると、「DEBUG」シンボルが定義されているので、次のことができます。

void SomeMethod()
{
    #if DEBUG
    //do something here
    #else
    //do something else
    #endif

}

これにより、DEBUGシンボルが定義されているかどうかに応じて、これらのブロックの1つだけがコンパイルされます。

また、[プロジェクトのプロパティ]->[ビルド]->[条件付きコンパイルシンボル]で追加のシンボルを定義できます。

または、/ define:switchを使用してコマンドラインコンパイラを介して

于 2008-09-18T01:20:54.663 に答える
0

おそらく私はあまりにも多くを仮定していますが、しかし:

switch (setting) {
  case "development": 
     dostuff;
     break
  case "production":
     dootherstuff;
     break;
  default:
     dothebeststuff;
     break;
}
于 2008-09-17T21:55:22.957 に答える