- PR -

ConsoleWriteLineは多用しても平気?

1
投稿者投稿内容
MASH
会議室デビュー日: 2004/01/19
投稿数: 4
お住まい・勤務地: 埼玉・南浦和
投稿日時: 2004-02-19 12:04
現在、Console.Writelineでたくさんログ情報(開発用動作ログ--実行されたSQLなど)を出していますけど、Console.Write処理は、実行ファイルになったときは無視されるのでしょうか?

VBのDebug.Printのような使い方をしてもよいのかということです。

EXEにして実行する時に、Console.Writelineが原因で遅くなったりするのかと気になりまして・・・
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2004-02-19 12:29
引用:

MASHさんの書き込み (2004-02-19 12:04) より:
現在、Console.Writelineでたくさんログ情報(開発用動作ログ--実行されたSQLなど)を出していますけど、Console.Write処理は、実行ファイルになったときは無視されるのでしょうか?



Debug.WriteLineを使えばいいと思いますが、そうしない理由は何でしょう?

#VS.NETを使ってないとかでしょうか。
#SDKで遊んでるときは私もデバッグのためにConsole.WriteLineをよく使います。

EXEにした後も残したければTraceクラスが使えます。

引用:

VBのDebug.Printのような使い方をしてもよいのかということです。



Debugクラスのメソッド呼び出しはコンパイル時に削除されますが、
それ以外は普通残ると思います。
作成したEXEをILDASM.exe(SDK付属の逆アセンブルツール)で
チェックすればILコードを見れますので、
その中でConsoleの文字があれば残っています。確認して見て下さい。

引用:

EXEにして実行する時に、Console.Writelineが原因で遅くなったりするのかと気になりまして・・・



Console.WriteLineでないといけない理由があるなら、
Conditonal属性(ConditionalAttributeクラス)を付加したメソッドで
コンパイル時にそのメソッドの呼び出し元のコードが削除されるメソッドを作る手があります。

VBなら標準モジュールで、
<Condtional("DEBUG")> _
Public Sub DebugWrite(ByVal obj As Object)
Console.WriteLine(obj)
End Sub
のようなプロシージャを作るといいでしょう。

Conditional属性に関する参考URL
VB
KEN's .NET [特集5] Debug.Writeの仕掛け 〜 Conditional属性 〜
デバッグ時に役立つ便利な属性 - 3.Conditional属性

C#
C# Tips
−条件付きコンパイル(ConditionalAttribute)−


-- BBコードをミスしてたので修正(恥) --

[ メッセージ編集済み 編集者: よねKEN 編集日時 2004-02-19 13:07 ]
MASH
会議室デビュー日: 2004/01/19
投稿数: 4
お住まい・勤務地: 埼玉・南浦和
投稿日時: 2004-02-19 12:32
Debug.Writelineを知りませんでした。
これから使います。
ありがとうございました!

・・・VS.NETを使っています。
1

スキルアップ/キャリアアップ(JOB@IT)