控制台有两个关系紧密的功能,也就是屏幕缓冲区和控制台窗口;

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

        控制台窗口:它的本质就是一窗体,它也以行和列的形式进行组织,其大小与屏幕缓冲区相同或者更小,该窗口可以进行移动以查看屏幕
缓冲区的不同区域。其中如果屏幕缓冲区比控制台窗口大,控制台会自动显示滚动条,以使控制台窗口可以在屏幕缓冲区上重新定位;

       屏幕缓冲区可以通过控制台窗口的矩形区域查看;

       光标:指指示屏幕缓冲区中当前正在读取或写入文本的位置(它可以同过CursorLeft和CursorTop来获取其相对于屏幕左上角的列数[即x坐
标]和行数[即y坐标]);

       注:CursorLeft和CursorTop(int类型的值)的数值是随着光标的位置的改变而不断发生变化的;其中方法:public static void
SetCursorPosition(int left,int top)用来设置光标的位置;(如果用console[控制台]来模拟计算器时,其显示栏的数据的显示需要用到这
个方法);

        Console类是一个静态的类,故其方法也都为静态的

下面我们来了解下console类的方法和属性:

         已重载:Beep():通过控制台扬声器播放提示音

                          Beep(Int32,Int32):通过控制台扬声器播放具有指定频率和持续时间的提示音(其中声音持续时间的单位是ms[毫秒])

        void Clear():清除控制台缓冲区和相应的控制台窗口的显示信息;

       已重载:MoveBufferArea(Int32,Int32,Int32,Int32,Int32,Int32):将屏幕缓冲区的指定原区域复制到指定的目标区域;

                        MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32,Char,ConsoleColor, ConsoleColor) :将屏幕缓冲区的指定原区域复制到指定的目标区域;(方法中的参数列表不同)

     已重载:OpenstandardError():获取标准错误流;

                       OpenStandardError(Int32):获取设置为指定缓冲区大小的标准错误流

      int Read():从标准输入流读取下一个字符

    已重载:ReadKey():获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中

            ReadKey(Boolean):获取用户按下的下一个字符或功能键,按下的可以悬着显示在控制台窗口中,也可以不显示;

     string ReadLine():从标准输入流读取下一行字符;

     void ResetColor():将控制台的前景色和背景色设置为默认值

     void SetBufferSize(int width,int height):将屏幕缓冲区的高度和宽度设置为指定值

     void SetCursorPosition(int left,int top):设置光标的位置

     void SetWindowPosition(int left,int top):设置控制台窗口相对于屏幕缓冲区的位置

     void SetWindowSize(int width,int height):将控制台窗口的高度和宽度设置为指定值

    已重载:var Write(var value):将指定值的文本表示形式写入标准输出流

    已重载:var WriteLine(var value):将指定的数据(后跟当前行终止符)写入标准输出流

属性:

    BackgroundColor:获取或设置控制台的背景色;

    BufferHeight:获取或设置缓冲区的高度;

    BufferWidth:获取或设置缓冲区的快读;

    CapsLock:获取一个值,该值指示CapsLock键盘切换键是打开的还是关闭的

    CursorLeft:获取或设置光标的在缓冲区的列位置;

    CursorTop:获取或设置光标在缓冲区中的行位置;

    CursorVisible:获取或设置一个值,用以指示光标是否可见;

    Error:获取标准错误输出流;

    ForegroundColor:获取或设置控制台的前景色;

    In:获取标准输入流;

    InputEncoding:获取或设置控制台用于度曲输入的编码;

    KeyAvailable:获取一个值,该值指示按键操作在输入流中是否可用;

    LargestWindowHeight:根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大行数;

    LargestWindowWidth:根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大列数;

    NumberLock:获取一个值,该值指示NumLock键盘切换键是打开的还是关闭的;

    Out:获取标准输出流

    OutputEncoding:获取或设置控制台用于写入输出的编码;

    Title:获取或设置要显示在控制台标题栏中的标题;

    TreatControlAsInput:获取或设置一个值,该值指示是将修改键Control和控制台键C的组合视为普通输入,还是视为由操作系统处理的中
断;

    WindowHeight:获取或设置控制台窗口区域的高度;

    WindowLeft:获取或设置控制台窗口区域的最左边相对于屏幕缓冲区的位置;

    WindowTop:获取或设置控制台窗口区域的最顶部相对于屏幕缓冲区的位置;

    WindowWidth:获取或设置控制台窗口的宽度;

事件

    CancelKeyPress:在同时按下修改键Control和控制台键C时发生;