System.Console 类

方法描述

表示控制台应用程序的标准输入流、输出流和错误流。 此类不能被继承。

语法定义(C# System.Console 类 的用法)

public static class Console

构造函数

构造函数名称 构造函数描述

成员/方法

方法名称 方法描述
Beep() 通过控制台扬声器播放提示音。
Beep(Int32, Int32) 通过控制台扬声器播放具有指定频率和持续时间的提示音。
Clear 清除控制台缓冲区和相应的控制台窗口的显示信息。
MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32) 将屏幕缓冲区的指定源区域复制到指定的目标区域。
MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32, Char, ConsoleColor, ConsoleColor) 将屏幕缓冲区的指定源区域复制到指定的目标区域。
OpenStandardError() 获取标准错误流。
OpenStandardError(Int32) 获取设置为指定缓冲区大小的标准错误流。
OpenStandardInput() 获取标准输入流。
OpenStandardInput(Int32) 获取设置为指定缓冲区大小的标准输入流。
OpenStandardOutput() 获取标准输出流。
OpenStandardOutput(Int32) 获取设置为指定缓冲区大小的标准输出流。
Read 从标准输入流读取下一个字符。
ReadKey() 获取用户按下的下一个字符或功能键。 按下的键显示在控制台窗口中。
ReadKey(Boolean) 获取用户按下的下一个字符或功能键。 按下的键可以选择显示在控制台窗口中。
ReadLine 从标准输入流读取下一行字符。
ResetColor 将控制台的前景色和背景色设置为默认值。
SetBufferSize 将屏幕缓冲区的高度和宽度设置为指定值。
SetCursorPosition 设置光标位置。
SetError 将 Error 属性设置为指定的 TextWriter 对象。
SetIn 将 In 属性设置为指定的 TextReader 对象。
SetOut 将 Out 属性设置为指定的 TextWriter 对象。
SetWindowPosition 设置控制台窗口相对于屏幕缓冲区的位置。
SetWindowSize 将控制台窗口的高度和宽度设置为指定值。
Write(Boolean) 将指定的布尔值的文本表示形式写入标准输出流。
Write(Char) 将指定的 Unicode 字符值写入标准输出流。
Write(Char[]) 将指定的 Unicode 字符数组写入标准输出流。
Write(Decimal) 将指定的 Decimal 值的文本表示形式写入标准输出流。
Write(Double) 将指定的双精度浮点值的文本表示形式写入标准输出流。
Write(Int32) 将指定的 32 位有符号整数值的文本表示写入标准输出流。
Write(Int64) 将指定的 64 位有符号整数值的文本表示写入标准输出流。
Write(Object) 将指定对象的文本表示形式写入标准输出流。
Write(Single) 将指定的单精度浮点值的文本表示形式写入标准输出流。
Write(String) 将指定的字符串值写入标准输出流。
Write(UInt32) 将指定的 32 位无符号整数值的文本表示写入标准输出流。
Write(UInt64) 将指定的 64 位无符号整数值的文本表示写入标准输出流。
Write(String, Object) 使用指定的格式信息将指定对象的文本表示形式写入标准输出流。
Write(String, Object[]) 使用指定的格式信息将指定的对象数组的文本表示形式写入标准输出流。
Write(Char[], Int32, Int32) 将指定的 Unicode 字符子数组写入标准输出流。
Write(String, Object, Object) 使用指定的格式信息将指定对象的文本表示形式写入标准输出流。
Write(String, Object, Object, Object) 使用指定的格式信息将指定对象的文本表示形式写入标准输出流。
Write(String, Object, Object, Object, Object) 使用指定的格式信息将指定的对象和可变长度参数列表的文本表示形式写入标准输出流。
WriteLine() 将当前行终止符写入标准输出流。
WriteLine(Boolean) 将指定布尔值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Char) 将指定的 Unicode 字符值(后跟当前行终止符)写入标准输出流。
WriteLine(Char[]) 将指定的 Unicode 字符数组(后跟当前行终止符)写入标准输出流。
WriteLine(Decimal) 将指定的 Decimal 值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Double) 将指定的双精度浮点值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Int32) 将指定的 32 位有符号整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(Int64) 将指定的 64 位有符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(Object) 将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Single) 将指定的单精度浮点值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(String) 将指定的字符串值(后跟当前行终止符)写入标准输出流。
WriteLine(UInt32) 将指定的 32 位无符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(UInt64) 将指定的 64 位无符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(String, Object) 使用指定的格式信息,将指定对象(后跟当前行终止符)的文本表示形式写入标准输出流。
WriteLine(String, Object[]) 使用指定的格式信息,将指定的对象数组(后跟当前行终止符)的文本表示形式写入标准输出流。
WriteLine(Char[], Int32, Int32) 将指定的 Unicode 字符子数组(后跟当前行终止符)写入标准输出流。
WriteLine(String, Object, Object) 使用指定的格式信息,将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(String, Object, Object, Object) 使用指定的格式信息,将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(String, Object, Object, Object, Object) 使用指定的格式信息,将指定的对象和可变长度参数列表(后跟当前行终止符)的文本表示形式写入标准输出流。

提示和注释

控制台是一个操作系统窗口,用户可在其中通过计算机键盘输入文本,并从计算机终端读取文本输出,从而与操作系统或基于文本的控制台应用程序进行交互。 例如,在 Windows 中控制台称为命令提示窗口,可以接受 MS-DOS 命令。 Console 类对从控制台读取字符并向控制台写入字符的应用程序提供基本支持。

控制台 I/O 流

控制台应用程序启动时,操作系统会自动将三个 I/O 流与控制台关联。 您的应用程序可以从标准输入流读取用户输入;将正常数据写入到标准输出流;以及将错误数据写入到标准错误输出流。 这些流会作为 In、Out 和 Error 属性的值提供给应用程序。

默认情况下,In 属性的值为 System.IO.TextReader 对象,而 Out 和 Error 属性的值为 System.IO.TextWriter 对象。 不过,您可以将这些属性设置为不表示控制台的流;例如,可以将这些属性设置为表示文件的流。 若要重定向标准输入流、标准输出流或标准错误流,请分别调用 SetIn、SetOut 或 SetError 方法。 使用这些流的 I/O 操作是同步的,这意味着多个线程均可读取或写入这些流。

注意

不应使用 Console 类将输出显示在无人参与的应用程序(如服务器应用程序)中。 同样,在 Windows 应用程序中调用 Write 和 WriteLine 等方法也不起任何作用。

基础流定向到控制台时 Console 类成员能够正常工作,但是,如果将基础流重定向(如重定向到一个文件),则该类的成员可能会引发异常。 因此,如果要将标准流重定向,请在应用程序中捕获 System.IO.IOException。

显式调用 In、Out 和 Error 属性表示的流对象的成员有时十分有用。 例如,默认情况下,Console.ReadLine 方法从标准输入流中读取输入。 同样,Console.WriteLine 方法将数据写入标准输出流,并在数据后添加默认行终止字符串;也就是说,数据后跟回车和换行(“\r\n”)。 但 Console 类不提供用于将数据写入标准错误输出流的相应方法,也不提供用于更改写入该流的数据的行终止字符串的属性。

若要解决此问题,可以将 Out 或 Error 属性的 TextWriter.NewLine 属性设置为其他行终止字符串。 例如,C# 语句 Console.Error.NewLine = "\r\n\r\n"; 将标准错误输出流的行终止字符串设置为两个回车符和换行符序列。 然后,您可以显式调用错误输出流对象的 WriteLine 方法,在 C# 语句中为 Console.Error.WriteLine();。

屏幕缓冲区和控制台窗口

控制台有两个关系紧密的功能,也就是屏幕缓冲区和控制台窗口。 文本实际上是从控制台拥有的流进行读取和写入的,但看起来像是在控制台拥有的一个称为屏幕缓冲区的区域中进行读取和写入的。 屏幕缓冲区是控制台的一个特性,以由行和列组成的矩形网格的形式进行组织,其中每个网格交叉位置(字符单元格)都可包含一个字符。 每个字符都有自己的前景色,而每个字符单元格都有自己的背景色。

屏幕缓冲区可通过称为控制台窗口的矩形区域查看。 控制台窗口是控制台的另一个特性;它不是控制台本身,控制台本身是一个操作系统窗口。 控制台窗口也以行和列的形式进行组织,其大小与屏幕缓冲区相同或者更小,该窗口可进行移动以查看基础屏幕缓冲区的不同区域。 如果屏幕缓冲区比控制台窗口大,控制台会自动显示滚动条,以使控制台窗口可以在屏幕缓冲区上重新定位。

光标指示屏幕缓冲区中当前正在读取或写入文本的位置。 可以隐藏或显示光标,光标的高度可以更改。 如果光标可见,控制台窗口的位置会自动移动,以便总是能够看到光标。

字符单元格在屏幕缓冲区中的坐标原点为左上角,光标和控制台窗口的位置相对于该原点进行计算。 使用从零开始的索引来指定位置;也就是说,将最上面的行指定为行 0,将最左边的列指定为列 0。 行和列索引的最大值为 Int16.MaxValue。

功能

Console 类提供用于从控制台读取单个字符或整行的方法;该类还提供若干写入方法,可将值类型的实例、字符数组以及对象集自动转换为格式化或未格式化的字符串,然后将该字符串(可选择是否尾随一个行终止字符串)写入控制台。 Console 类还提供一些用以执行以下操作的方法和属性:获取或设置屏幕缓冲区、控制台窗口和光标的大小;更改控制台窗口和光标的位置;移动或清除屏幕缓冲区中的数据;更改前景色和背景色;更改显示在控制台标题栏中的文本;以及播放提示音。

Console 类还包含支持控制台窗口外观自身自定义的成员。 可调用 SetWindowSize 方法同时更改控制台窗口中的行数和列数,或使用 WindowHeight 和 WindowWidth 属性可以独立地更改行数和列数。 可以使用 ForegroundColor 和 BackgroundColor 属性来调整控制台窗口的颜色,使用 CursorSize 和 CursorVisible 属性来自定义控制台窗口中的光标。

System.Console 类例子

请注意,可以使用 SetIn 和 SetOut 方法重定向这些流。

public static void Main(string[] args) {
    Console.Write("Hola ");
    Console.WriteLine("Mundo!");
    Console.WriteLine("What is your name: ");
    String name = Console.ReadLine();
    Console.Write("Buenos Dias, ");
    Console.Write(name);
    Console.WriteLine("!");
}

继承层次结构

System.Object

System.Console

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。

相关资源

System 命名空间
MSDN