アプリケーションがデバッグモードで実行されている場合にのみメッセージをログに記録する必要があります。私は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);
}
2番目:とてもきれい。ロギングが必要な場合は、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);
}
パフォーマンスの違いが気になります。