【C#】デバッグ用に文字列を表示(Visual Studio デバッガの出力欄を活用)

C#

Visual Studioを使用したWindowsアプリケーションの開発中に、デバッグ用の文字列を表示してプログラムが期待通りに動作しているかを確認したいことがあります。また、そのようなデバッグ用の文字列は、リリース後のユーザ環境では表示してほしくはありません。Visual Studioを使用したアプリケーションの開発では、そのように開発中のみ文字列を表示する方法があります。

本記事では、Windowsアプリケーションの開発中のみ、デバッグ用の文字列を表示する方法を紹介します。

サンプルコード

フォーム上に2つボタンが配置されたフォームを使用します。

以下は、ボタンがクリックされたときに、デバッグ用の文字列を表示するサンプルコードです。System.Diagnostics名前空間のDebug.WriteLineメソッドを使用することにより、Visual Studioの出力欄に文字列を表示することができます。

using System;
using System.Windows.Forms;
using System.Diagnostics;   // ★Debugクラス使用のため

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            // ★デバッグ用文字列の表示
            Debug.WriteLine("ボタン1が押されました");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            // ★デバッグ用文字列の表示
            Debug.WriteLine("ボタン2が押されました");
        }
    }
}

実行結果
Visual Studio画面の出力欄にデバッグ用の文字列が表示されます。

Debugクラスの他のメソッドの例

Debugクラスには、上記のDebug.WriteLineのようにデバッグ用の文字列を表示する便利なメソッドが他にもありますので、いくつか紹介します。

Debug.Write

Debug.Writeの役割はDebug.WriteLineと同じですが、文字列末尾に改行文字を付加しない点が異なります。

Debug.Write("ボタン1が押されました");

上記処理が連続して実行された場合、以下のように表示されます。

ボタン1が押されましたボタン1が押されました

Debug.WriteLineIf

条件を満たす場合だけ、デバッグ用文字列を表示します。使用方法は以下の通りです。

Debug.WriteLineIf( 条件, 表示する文字列 )

以下は、ループのカウンタiが偶数の場合のみデバッグ用の文字列を表示するサンプルです。

for (int i = 0; i <= 10; i++)
{
    Debug.WriteLineIf(i % 2 == 0, $"偶数:{i}");
}

実行結果

偶数:0
偶数:2
偶数:4
偶数:6
偶数:8
偶数:10

注意点

構成が「Debug」となっていることを確認

Debug.WriteLineメソッド等を使用する場合は、構成を「Debug」にして動作確認をする必要があります。もし、この部分が「Release」となっている場合は、Debug.WriteLineによる文字列表示は行われません

不要になったデバッグ文字列表示の処理は削除する

Debug.WriteLineメソッドによるデバッグ用文字列の表示は便利ですが、多用しすぎると必要な情報を見逃す原因となります。使用し終わって不要になったDebug.WriteLineの文字列表示処理は削除したり、条件付きコンパイルを活用して特定条件のみ情報を表示するようにしましょう。

条件付きコンパイルの活用方法については、以下の記事を参考にしてください。

まとめ

本記事では、Windowsアプリケーションの開発中のみ、デバッグ用の文字列を表示する方法を紹介しました。

タイトルとURLをコピーしました