アプリケーションがデバッグモードで実行されている場合にのみメッセージを記録する必要があります。私は2つの方法を見つけました:コンパイラ指令 - 示唆 - デバッグモードでのみコードを実行
最初:ログが必要なときはどこにでも3行書く必要があります。しかし、Logger文はコンパイル時には無効になっていますが、これはまさに私が必要です。 Logger.Logはまったく実行されません。
#if DEV_ENV
Logger.Log("Application started !"); // This line is grayed. Perfect !
#endif
public static void Log(string message)
{
Debug.WriteLine(message);
}
第二:とてもきれい。ロギングが必要な場合は、1行のコードしかありません。 Logger.Logステートメントが実行されるかどうかは不明です。 関数呼び出しがコンパイル時にのみ削除された場合(最初のアプローチと同じですが、コードのラインがグレー表示されていないことを確認しています)、これを実行します。
Logger.Log("Application started !"); // This line is not grayed out. But, function is not called. So, confused whether its removed at compile time.
[Conditional("DEV_ENV")]
public static void Log(string message)
{
Debug.WriteLine(message);
}
私は、パフォーマンスの違いが心配です。 ConditionalAttributeためMSDNページから
優れています。答えを得ました。 –