C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のConsole.SetBufferSize()メソッドの使い方を徹底解説

C#におけるConsole.SetBufferSize()メソッドは、コンソール画面のバッファ領域(スクリーンバッファ)の幅と高さを指定した値に設定するために使用されるメソッドです。コンソールアプリケーションで表示領域をカスタマイズしたい場合に活用できます。

構文

Console.SetBufferSize()メソッドの構文は以下の通りです。

public static void SetBufferSize (int width, int height);

各パラメータの意味は次のようになっています。

  • width: バッファ領域の幅(列数)を指定します。
  • height: バッファ領域の高さ(行数)を指定します。

なお、指定できる最小サイズはそれぞれ0ではなく、幅は0より大きくウィンドウ幅以上、高さも同様に制約があるため、極端に小さい値を指定すると例外が発生する点に注意してください。

使用例

それでは、C#でConsole.SetBufferSize()メソッドを実装した実際のコード例を見てみましょう。

using System;
class Demo {
   public static void Main (string[] args) {
      Console.BackgroundColor = ConsoleColor.White;
      Console.ForegroundColor = ConsoleColor.Red;
      Console.SetBufferSize(400, 400);
      while (true) {
         Console.WriteLine("Our demo text!");
      }
   }
}

コードの解説

このサンプルコードでは、まずConsole.BackgroundColorプロパティで背景色を白に、Console.ForegroundColorプロパティで文字色を赤に設定しています。その後、Console.SetBufferSize(400, 400)を呼び出すことで、コンソールのバッファ領域を幅400×高さ400に拡張しています。最後に無限ループ内でテキストを繰り返し出力することで、設定した大きなバッファ領域に大量のテキストがスクロールされていく様子を確認できます。

実行結果

上記のプログラムを実行すると、白い背景に赤い文字で「Our demo text!」というテキストが連続して表示され、拡張されたバッファ領域に出力が蓄積されていきます。通常のコンソールサイズでは収まりきらない大量の出力にも対応できることがわかります。

まとめ

Console.SetBufferSize()メソッドを使うことで、コンソールアプリケーションの表示バッファを自由に拡張できます。ログを大量に出力するツールや、コンソール上で多くの情報を扱うアプリケーションを開発する際に役立つメソッドなので、ぜひ覚えておきましょう。

  1. C#のConsole.ResetColor()メソッドの使い方を解説

    概要C#のConsole.ResetColor()メソッドは、コンソールの前景色(文字色)と背景色を、既定の配色に戻すために使用されます。プログラム内で一時的に文字色や背景色を変更した後、元の状態へ復元したい場合に非常に便利です。構文ResetColor()メソッドの構文は以下のとおりです。public static void ResetColor ();このメソッドは引数を受け取らず、戻り値もありません。また、staticメソッドであるため、インスタンスを生成することなく、Consoleクラスから直接呼び出すことができます。使用例それでは、C#でConsole.ResetColor()メソッ

  2. C#のConsole.MoveBufferArea()メソッドの使い方を徹底解説

    C#のConsole.MoveBufferArea()メソッドは、コンソールの画面バッファ内にある指定されたソース領域を、指定されたコピー先(ターゲット)領域へ移動するために使用されるメソッドです。コンソールアプリケーションで画面上のテキストを別の位置に移動させたい場合に便利です。構文MoveBufferArea()メソッドの基本的な構文は以下の通りです。public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int t