私のアプリケーションでは、多くのConsole#WriteLine
またはConsole#Write calls
があります。これは非常に多く、アプリケーションは必要以上に遅いです。すべてのConsole#WriteLineコールを無効または削除しますか?
これで、Console#WriteLineとConsole#Write
のすべてのコールを削除するか、少なくとも無効にする簡単な方法を探しています。
これを達成する最も簡単な方法は何ですか?
私のアプリケーションでは、多くのConsole#WriteLine
またはConsole#Write calls
があります。これは非常に多く、アプリケーションは必要以上に遅いです。すべてのConsole#WriteLineコールを無効または削除しますか?
これで、Console#WriteLineとConsole#Write
のすべてのコールを削除するか、少なくとも無効にする簡単な方法を探しています。
これを達成する最も簡単な方法は何ですか?
多分&コードエディタの機能を置き換えますか? その後、あなたが開始するためにSystem.Diagnostics.Debug.Print()
を使用している必要がありますたとえば、すべての
Console.WriteLine
を見つけ、彼らは非本質的な(ログ)している場合
//Console.WriteLine
私はそれについて考えましたが、問題は正規表現かそのようなものがあることです。 – RoflcoptrException
そして、私はコードに空白がたくさんあります。なぜなら、コールをそのようなものに置き換える必要があるからです。 – RoflcoptrException
多分私が書いたもので十分でしょうか? –
と交換してください。
幸運にもWriteLine()
はDebug.Print()
と互換性がありますので、これは簡単です。S & Rです。
Console.Write()
を交換するのはややこしいかもしれません。
完了する:Debug.Print()ステートメントは、プロジェクト|プロパティのチェックボックスを使ってオン/オフを切り替えることができます。
単純な非正規表現の検索/置換ダイアログを使用し、Console.WriteLine(
をすべてDebug.WriteLine(
に置き換えます。
以前はコンソールウィンドウに直接出力された内容を追跡し、リリースモードでのパフォーマンスを最適化することができます。
Debug.WriteLineは同じパラメータを処理しません。 –
@Henk Holterman:そうです。私は私の答えを保持しています(この正確なケースでは、パラメータが毎回単一の文字列のように非常に基本的であった場合には便利です)。 –
Visual Studioでは、Find "Console.Write"を実行するマクロを記録し、その行を削除するために、Tools|Macros|Record temporary macro
オプションを使用します。
"Console.Write"を検索するには、 を見つけてから、Ctrl + Lを押して行を削除します。
マクロを保存し、問題のある行があるプロジェクト内のすべてのファイルに対して実行します。
約2分かかります。
しかし、まずソースをバックアップすることをお勧めします。念のため。
私が実装したさらに迅速な修正がここにあります。
...
static int Main(String[] args)
{
...
#if !DEBUG
Console.SetOut(TextWriter.Null);
Console.SetError(TextWriter.Null);
#endif
...
}
HTH
あなたは[ '#IF DEBUG'](http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx)を使用する場合、または使用することができます将来的には[ConditionalAttribute](http://weblogs.asp.net/tgraham/archive/2004/03/12/88682.aspx)と独自のデバッグ印刷方法。 –
私はすでにそれをやっていますが、プロジェクトの始めに私はそれをしませんでした。 –
アプリのConsole.WriteLineの#IF DEBUGは私にとっては悪い考えですね。ランタイムでレベルを調整できるログエンジンを使用してください。 –