C#/VB.NET Debug.Printの使い方:デバッグ時のみ出力する

デバッグ中だけ出力確認をしたいけどいい方法はありますか?

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()   '出力バッファをフラッシュ

受講者No1のプログラミングスクール

初心者でも安心して学べるカリキュラム

副業のための専用コースも充実!副業を紹介・納品までサポート

プログラミング初心者でも、短期間で実践力を身につけることができる!

Web制作を学べる無料体験に参加するとAmazonギフトカードプレゼント!

無料メンター相談でAmazonギフト+受講料10,000円割引!

Debug時だけ出力を行えるようになりました。

各出力方法を理解してその都度用途に合った出力方法を利用できるように覚えておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次