閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

イミディエイト ウィンドウでログ出力

デバッグ中、イミディエイトウィンドウから他のメソッドを呼び出すことができるようです(まあ普通にできるか……)。これを見て、任意の値をファイルに出力させることができるんじゃないかと思って試してみました。

まず、以下のようなメソッドを用意します。

public static void WriteArray<T>(T[] array)
{
  using (StreamWriter writer = new StreamWriter("C:/test.log"))
  {
    foreach (T t in array)
    {
      writer.WriteLine(t);
    }
  }
}

引数の配列をテキストファイルに書き出すだけのメソッドです。

次に、適当に配列を使っているメソッドの中にブレークポイントを仕掛けます。ブレークポイントで止まったら、イミディエイトウィンドウに以下のように入力します。

 // WriteArrayをhogeクラスのメソッドに置き、
 // またこのメソッドのスコープ内に T[] array 変数があるものとする
hoge.WriteArray(array);

するとWriteArrayメソッドが実行されて見事配列の中身をテキストファイルに出力することができました。

デバッグ中に、配列の要素を保存したくなった時なんかに使えそうです。