デバッグ中だけ出力確認をしたいけどいい方法はありますか?
Debug.Printを用いることで、デバッグ中のみ出力され、リリース時には出力されないように作成することができます。
Debug.Printとは
デバッグ中のみデバッグ情報を1行ずつ出力するには,Debugクラスの「Debug.Print」を利用することで確認できます。Debug.Printは、C#のSystem.Diagnostics名前空間に含まれる関数です。
この関数は、デバッグ時にのみテキストを出力することができます。リリース版には含まれず、開発中のデバッグ用として使用することができます。
また、「Debug.WriteLine」も「Debug.Print」と同じ結果となります。
Debug.WriteLineは、Debug.Printと同じような関数ですが、改行コードを含めた出力ができます。こちらもリリース版には含まれず、開発中のデバッグ用として使用することができます。
Debug.Print(文字列)
Debug.WriteLine(文字列)
using System;
using System.Windows.Forms;
using System.Diagnostics;
private void Form1_Load(object sender, EventArgs e)
{
Debug.Print("デバッグプリントテスト");
Debug.WriteLine("デバッグプリントテスト");
}
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Debug.Print("デバッグプリントテスト")
Debug.WriteLine("デバッグプリントテスト")
End Sub
Debug.PrintとDebug.WriteLineの違いについて
「Debug.Print」と「Debug.WriteLine」はほぼ同じ機能です。両方同じようなものと覚える良いです。
あえて違いをあげると、PrintはString型のみに対応しており、WriteLineはObject型にも対応しているという違いがあります。
どちらを使っても問題ないですが、どちらかに統一してしまったほうがプログラムを綺麗にかけるでしょう。
Debug.PrintやConsole.WriteLineなどの使い分け
各出力方法は用途によって利用タイミングが異なります。
デバッグメソッド | 説明 |
---|---|
Debug.Print/Debug.WriteLine | デバッグ時にのみ利用(リリースビルドには自動で反映されない) |
Console.WiteLine | コンソール出力に表示したい場合に利用 |
Trace.WriteLine | 詳細ログを追えるように残したい場合に利用 |
条件によってデバッグ情報を出力する
条件式が「true」のときのみデバッグ情報を出力するには、DebugクラスのWriteLineIfメソッドを使います。
第一引数に条件式、第二引数に出力する値を指定します。
Debug.WriteLineIf(条件式 , 出力する値)
Debug.WriteLineIf(true, "デバッグプリント(true)");
Debug.WriteLineIf(false, "デバッグプリント(false)");
Debug.WriteLineIf(True, "デバッグプリント(true)")
Debug.WriteLineIf(False, "デバッグプリント(false)")
デバッグ情報をファイルに出力する
デバッグ情報を出力するには、TraceLisnerCollectionオブジェクトに出力先を追加します。
Trace.Listeners.Add(TextWriteTraceListenerオブジェクト)
TextWriteTraceLisnerオブジェクトにはファイルパスを指定します。
New TextWriterTraceListener(ファイルパス)
Trace.Listeners.Add(new TextWriterTraceListener(@"C:\debug\debug.txt"));
Trace.Write("デバッグプリント");
Trace.Flush(); //出力バッファをフラッシュ
Trace.Listeners.Add(New TextWriterTraceListener("C:\debug\debug.txt"))
Trace.Write("デバッグプリント")
Trace.Flush() '出力バッファをフラッシュ
Debug時だけ出力を行えるようになりました。
各出力方法を理解してその都度用途に合った出力方法を利用できるように覚えておきましょう。