.Net で標準出力をリダイレクト

ついでに

using( MemoryStream ms = new MemoryStream() ) {
  using( StreamWriter sw = new StreamWriter( ms ) ) {
    Console.SetOut( sw ); // sw にリダイレクト
    Console.Write( "hoge" );
    // 以下はおまけ sw 使って適当に。
    sw.Flush();
    ms.Position = 0;
    using( StreamReader sr = new StreamReader( ms ) ) {
      return sr.ReadToEnd(); // => return "hoge";
    }
  }
}