DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

VB6のDebug.Printと同じ事を行うには?

VB6のDebug.Printと同様の機能は、System.Diagnostics.DebugクラスのWriteメソッドということになりそうです。DebugクラスにはWriteのほかにも、WriteLine(一行を出力)、WriteIf(条件により出力)、WriteLineIf(条件により一行を出力) などのメソッドもあります。これらのメソッドで出力されたメッセージは、通常「出力ウィンドウ」に表示されます(こちらの例のように、出力先を変更できます)。出力ウィンドウは、Visual Studioのメニュー「表示」-「その他のウィンドウ」-「出力」で表示できます。

System.Diagnostics.Debugクラスと似たものにSystem.Diagnostics.Traceクラスがありますが、Debugクラスはデバッグビルドを作成したときにのみ有効になるのに対して、Traceクラスではリリースビルドとデバッグビルドの両方で有効となる点が異なります。(正確には、DEBUGあるいはTRACEディレクティブが宣言されているときいうことになります。詳しくはこちらをご覧ください。)

以下にDebugクラスを使った例を幾つか示します。

VB.NET
コードを隠すコードを選択
'出力ウインドウに出力される
System.Diagnostics.Debug.WriteLine("スタート!")
'インデントする
System.Diagnostics.Debug.Indent()
'Environment.GetCommandLineArgs().Lengthが1より大きい時に
'指定した文字列を表示
System.Diagnostics.Debug.WriteLineIf( _
    Environment.GetCommandLineArgs().Length > 1, "コマンドラインあり")
'アンインデントする
System.Diagnostics.Debug.Unindent()
C#
コードを隠すコードを選択
//出力ウインドウに出力される
System.Diagnostics.Debug.WriteLine("スタート!");
//インデントする
System.Diagnostics.Debug.Indent();
//Environment.GetCommandLineArgs().Lengthが1より大きい時に
//指定した文字列を表示
System.Diagnostics.Debug.WriteLineIf(
    Environment.GetCommandLineArgs().Length > 1, "コマンドラインあり");
//アンインデントする
System.Diagnostics.Debug.Unindent();

上記のコードを実行すると、例えば、次のように出力されます。

スタート!
    コマンドラインあり