(Console.BufferHeight)我无法看到/滚动以查看Console.WriteLine的所有控制台输出

当我运行此代码时,输​​出窗口顶部的数字是99701.为什么我不能一直看到1? 我实际上看到所有数字都输出了,但在控制台窗口,我只能滚动到足以看到99701(我猜)。 我在Vista Home上使用Visual C#express。 :d

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using utilities; namespace Testing_Project { class Program { static void Main(string[] args) { List myList = new List(); for (int x = 0; x < 100000; x++) myList.Add( x.ToString() ); foreach (string s in myList) { Console.WriteLine(s); } Console.Read(); } } } 

Console.Write(s)很好,但是Console.Write(s +“\ n”)没有。 我猜我只能向上滚动这么多新行?

从.Net Framework 2.0及更高版本开始,您可以使用Console.BufferHeight在您自己的程序中更改缓冲区高度:

 Console.BufferHeight = Int16.MaxValue - 1; // ***** Alters the BufferHeight ***** List myList = new List(); for (int x = 0; x < 100000; x++) myList.Add(x.ToString()); foreach (string s in myList) { Console.WriteLine(s); } 

最大高度为Int16.MaxValue - 1。

300似乎是您的默认控制台缓冲区大小。 这是Windows设置,与您的应用程序无关。

您可以通过创建可执行文件的快捷方式来更改控制台缓冲区大小。 然后右键单击快捷方式并选择“属性”。 转到“选项”选项卡并更改缓冲区大小。

似乎我很长时间没有检查该function,但它现在似乎可以修改。 见Alfred Myers的回答

这是控制台而不是你的应用程序。

作为替代方法,您可以使用Debug.WriteLine(System.Diagnostics)并使用Visual Studio中的“输出”窗口。 它有一个更大的缓冲区(只需确保运行Debug构建)。

这与C#无关,但实际上命令提示符中的输出缓冲区默认只有300行。 您可以在窗口设置中更改它,尽管这可能是尝试实现“更多”类似function的机会,每次输出屏幕数据时都会突破循环。 然后当你按一个键时,它会输出另一个屏幕,等等。

您不会再看到它了,因为默认情况下控制台不会缓冲超过300行。 使用控制台的设置对话框来更改此设置 – 我相信您只需启动命令提示符并在那里更改它们,然后运行您的程序。

Alfred已经指出了你的应用程序如何改变缓冲区高度。