PR

 コンソールは,テキスト・ベースのコンソール・アプリケーションとのユーザー・インターフェースである。Windowsの場合は,コマンド・プロンプトがそれに相当する。ユーザーは,キーボードから文字を入力したり,コンピュータが出力した文字列を読み取ったりできる。このようなコンソールを利用するには,Consoleクラスを使う。

 コンソール・アプリケーションを起動すると,自動的に,3つの入出力ストリームとコンソールが,OSによって関連づけられる。ユーザーのキー入力を読み取るには,標準入力ストリームを使う。画面に文字列を表示するには,標準出力ストリームを使う。エラー情報を出力するには,標準エラー出力ストリームを使う。これらのストリームは,それぞれIn,Out,Errorプロパティを通じてアプリケーションから利用可能である。

 デフォルトで,Inプロパティの値はSystem.IO.TextReaderオブジェクトに,OutプロパティとErrorプロパティの値はSystem.IO.TextWriterオブジェクトになる。ただし,これらのプロパティを,ファイル・ストリームなどコンソール以外のストリームに関連づけることもできる。これらのストリームを使用した入出力操作は同期されるため,複数のスレッドがストリームからデータを読み込んだり,ストリームに対して書き込んだりできる。

 Consoleクラスのメンバーは,ストリームの出力先がコンソールに設定されているときには正常に動作するが,ファイルなどにリダイレクトすると例外を発生する場合がある。そのため,標準ストリームをリダイレクトする場合は,例外処理をプログラムに追加する必要がある。

 コンソールには,画面バッファとコンソール・ウインドウという,2つの機能がある。テキストの入出力は,コンソールに割り当てられた画面バッファ領域との間でやり取りされているように見えるが,実際には,コンソールに割り当てられたストリームとの間で実行される。

 画面バッファは,コンソール・ウインドウを通じて表示される。コンソール・ウインドウも行と列の並びを持っており,その大きさは画面バッファと同じか,それ以下である。コンソール・ウインドウを移動することで,基になる画面バッファの様々な領域を表示できる。画面バッファがコンソール・ウインドウよりも大きい場合,画面バッファ領域に対するコンソール・ウインドウの位置関係を変更できるよう,コンソールには自動的にスクロール・バーが表示される。

 画面バッファの,テキストの現在の読み込み/書き込み位置は,カーソルによって表される。カーソルは,表示と非表示を切り替えたり,高さを変更したりできる。カーソルが表示されている場合,そのカーソルが常に表示領域内に入るようにコンソール・ウインドウの位置が自動的に移動される。

 画面バッファにおける文字セル座標の原点は左上である。また,カーソルとコンソール・ウインドウの位置は,この原点との位置関係で計算される。位置を指定するには,最上の行は行0,左端の列は列0のように,0から始まるインデックスを使用する。行と列のインデックスの最大値はInt16.MaxValueである。

 Consoleクラスには,コンソールから文字を1つずつ読み込むReadメソッドや,行全体を読み込むReadLineメソッドのほか,値型,文字配列,オブジェクトのインスタンスを書式付きまたは書式なし文字列に自動的に変換した後,必要に応じて行終端文字列を追加してコンソールに出力するWriteやWriteLineメソッドがある。

 また,Consoleクラスは,画面バッファ,コンソール・ウインドウ,カーソルの大きさの変更,コンソール・ウインドウやカーソルの位置の移動,画面バッファ内のデータの移動/消去,前面色/背景色の変更,コンソールのタイトル・バーに表示するテキストの変更,ビープ音の発生などが可能である。

サンプルコードを見る


名前空間
System
対応バージョン
.NETFramework2.0,1.1,1.0
.NET Compact Framework 2.0,1.0
主なプロパティ
BackgroundColor
コンソールの背景色を取得または設定する。

BufferHeight
バッファ領域の高さを取得または設定する。

BufferWidth
バッファ領域の幅を取得または設定する。

CapsLock
キーボードのCapsLockがオンかオフかを示す値を取得する。CapsLockがオンの場合はTrue,CapsLockがオフの場合はFalseである。

CursorLeft
バッファ領域におけるカーソルの列位置を取得または設定する。

CursorSize
文字セル内のカーソルの高さを取得または設定する。

CursorTop
バッファ領域におけるカーソルの行位置を取得または設定する。

CursorVisible
カーソルを表示するかどうかを示す値を取得または設定する。カーソルを表示する場合はTrue。カーソルを表示しない場合はFalseである。

Error
標準エラー出力ストリームを取得する。

ForegroundColor
コンソールの前景色を取得または設定する。

In
標準入力ストリームを取得する。

InputEncoding
入力内容の読み取り時に使用するエンコーディングを取得または設定する。

KeyAvailable
キーが押されたかどうかを調べる。つまり,押されたキーが入力ストリームに存在するかどうかを示す値を取得する。押されたキーが入力ストリームに存在する場合はTrue。押されたキーが入力ストリームに存在しない場合はFalseである。

LargestWindowHeight
現在のフォントおよび画面解像度に基づいて,コンソール・ウインドウの最大行数を取得する。

LargestWindowWidth
現在のフォントおよび画面解像度に基づいて,コンソール・ウインドウの最大列数を取得する。

NumberLock
キーボードのNumLockがオンかオフかを示す値を取得する。NumLockがオンの場合はTrue,NumLockがオフの場合はFalseである。

Out
標準出力ストリームを取得する。

OutputEncoding
出力内容の書き込み時に使用するエンコーディングを取得または設定する。

Title
コンソール・ウインドウのタイトル・バーに表示する文字列を取得または設定する。

TreatControlCAsInput
Ctrl+Cを,通常の入力として扱うか,OSによって処理される割り込みとして扱うかを示す値を取得または設定する。Ctrl+Cを通常の入力として扱う場合はTrue。OSによって処理される割り込みとして扱う場合はFalseである。

WindowHeight
コンソール・ウインドウの高さを取得または設定する。

WindowLeft
コンソール・ウインドウ領域の左端の位置を,画面バッファに対する相対位置として取得または設定する。

WindowTop
コンソール・ウインドウ領域の上端の位置を,画面バッファに対する相対位置として取得または設定する。

WindowWidth
コンソール・ウインドウの幅を取得または設定する。

主なメソッド
Beep
スピーカーからビープ音を出す。

Clear
コンソール・バッファと対応するコンソール・ウインドウを消去する。

MoveBufferArea
画面バッファの特定の領域を,指定した領域にコピーする。

OpenStandardError
標準エラー出力ストリームを取得する。

OpenStandardInput
標準入力ストリームを取得する。

OpenStandardOutput
標準出力ストリームを取得する。

Read
標準入力ストリームから文字を読み取る。

ReadKey
ユーザーによって押された文字キーまたはファンクション・キーを取得する。

ReadLine
標準入力ストリームから1行分の文字を読み取る。

ResetColor
コンソールの前景色および背景色を既定値に設定する。

SetBufferSize
画面バッファ領域の高さと幅を指定された値に設定する。

SetCursorPosition
カーソルの位置を設定する。

SetError
Errorプロパティ(標準エラー出力)を,指定したTextWriterオブジェクトに設定する。

SetIn
Inプロパティ(標準入力)を,指定したTextReaderオブジェクトに設定する。

SetOut
Outプロパティ(標準出力)を,指定したTextWriterオブジェクトに設定する。

SetWindowPosition
画面バッファに対するコンソール・ウインドウの相対位置を設定する。

SetWindowSize
コンソール・ウインドウの高さと幅を指定された値に設定する。

Write
標準出力ストリームに書き込む。

WriteLine
標準出力ストリームに書き込み,改行する。

主なイベント
CancelKeyPress
Ctrl+Cが押された場合に発生する。