为什么Console.Readline()对它允许的文本长度有限制?
可能重复:
Console.Readline()最大长度?
在我试图找到一个非常简单的文本到语音应用程序时, 我认为编写自己的文本更快 。 但是,我注意到Console.Readline()
在每行允许的文本数量上限制为254个字符; 我在方法文档中找不到有关此限制的任何内容。
这是Windows堆栈中的限制,还是我的代码有问题? 我怎么能克服它? 我可以决定用Console.Readkey()
逐个字符地阅读,但是我不会冒险丢失字符到MS DOS哑文字粘贴行为?
使用.NET Reflector快速了解实现情况,可以:
public static Stream OpenStandardInput() { return OpenStandardInput(0x100); } public static Stream OpenStandardInput(int bufferSize) { ... }
256是OpenStandardInput的默认值,所以我猜它是设计的。 请注意,这仅适用于.NET,因为Windows API没有此限制。
这是Console API的一个奇怪的限制。 我之前遇到过这个问题并找到了以下解决方案:
Console.SetIn(new StreamReader(Console.OpenStandardInput(8192)));
来自以下MSDN论坛post:
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/51ad87c5-92a3-4bb3-8385-bf66a48d6953
另请参阅此相关的StackOverflow问题:
Console.ReadLine()最大长度?