2

采用以下 C# 文件,这是我的问题的最简单的重现:

using System;
using System.IO;

public static class Test
{
    public static void Main(string[] args)
    {
        string line;
        while ((line = Console.In.ReadLine()) != null)
        {
            Console.Out.WriteLine(line);
        }
    }
}

当我在单声道下构建它并在控制台上运行它时,一切正常,除了我无法发送 EOF。键入 CTRL-D 只会在命令行上放置一个奇怪的字符。我认为我正在以错误的方式检查 EOF ,但Console.In它是 a TextReader,它没有该EndOfFile属性。我怎样才能解决这个问题?

4

2 回答 2

5

哪个版本的单声道?我在 2009 年 3 月 16 日的r129444中修复了这个问题...当我按下 Ctrl-D 时,您的程序按预期运行。

更新:很好。我发现 2.4.xy 版本没有修复 :-(。它将在即将到来的 2.6 版本中......对此感到抱歉。 更新 2: mono-2-4 于 2009 年 3 月 13 日分支。我错过了3天!

于 2009-11-12T04:40:58.407 回答
1

CTRL-D 是文件的 unix 样式结尾...因为 Mono 源自 Microsoft 领域,它可能使用 CTRL-Z 吗?(我没有安装 Mono,所以我在这里在黑暗中拍摄)。

于 2009-11-12T04:40:23.617 回答