为什么Console.Readline()有限制文本长度的限制?

14

可能重复:
Console.Readline() 的最大长度是多少?

我尝试寻找一个非常简单的文本到语音应用程序时,我决定编写自己的应用程序更快。然而,我注意到Console.Readline() 在每行允许的文本数量上受到了254字符的限制;我无法在该方法文档中找到有关此限制的任何信息。

这是 Windows 系统的限制,还是我的代码出了问题?我该如何克服它?我可以决定使用Console.ReadKey() 按字符读取,但我难道不会因 MS DOS 愚蠢的文字粘贴行为而丢失字符吗?


请注意,我知道254必须来自哪里 - 那是256个字节,减去一个换行符和回车符。但是我不知道那256从哪里来的。 - badp
2个回答

48

2
对我来说,我需要以下内容:Console.SetIn(new StreamReader(Console.OpenStandardInput(8192), Console.InputEncoding, false, 8192)); - Perrin255

7
使用.NET Reflector快速查看实现如下:
public static Stream OpenStandardInput()
{
    return OpenStandardInput(0x100);
}

public static Stream OpenStandardInput(int bufferSize)
{
  ...
}

OpenStandardInput 的默认值为 256,我猜这是有意设计的。请注意,这仅适用于 .NET,因为 Windows API 没有此限制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接