構成ファイルを使用して、コンパイル時または実行時に行うことができます。単純な (そして多くの) if ステートメントよりもエレガントな方法はありますか?
私は特に、特定の機能用の UI コントロールのセットをターゲットにしています。
構成ファイルを使用して、コンパイル時または実行時に行うことができます。単純な (そして多くの) if ステートメントよりもエレガントな方法はありますか?
私は特に、特定の機能用の UI コントロールのセットをターゲットにしています。
プログラムで 100% のパフォーマンスを引き出す必要がない限り、構成ファイルを使用してください。コードをよりクリーンに保ちます。
1 つのオプションがコードの多くの部分を変更する場合は、多くの条件を記述するのではなく、委譲先のクラスを選択する 1 つの条件を記述します。たとえば、設定で TCP と UDP を選択する場合、コードの残りの部分で使用する TcpProvider または UdpProvider を条件付きでインスタンス化し、手間や手間を最小限に抑えます。
コンパイラ指令はそれほど柔軟ではありませんが、状況によっては適切です。
たとえば、デフォルトでは、VS.NETでDEBUGモードでコンパイルすると、「DEBUG」シンボルが定義されているので、次のことができます。
void SomeMethod()
{
#if DEBUG
//do something here
#else
//do something else
#endif
}
これにより、DEBUGシンボルが定義されているかどうかに応じて、これらのブロックの1つだけがコンパイルされます。
また、[プロジェクトのプロパティ]->[ビルド]->[条件付きコンパイルシンボル]で追加のシンボルを定義できます。
または、/ define:switchを使用してコマンドラインコンパイラを介して
おそらく私はあまりにも多くを仮定していますが、しかし:
switch (setting) {
case "development":
dostuff;
break
case "production":
dootherstuff;
break;
default:
dothebeststuff;
break;
}