为什么CTRL-D不用单声道发送EOF?

时间:2009-11-12 04:31:26

标签: c# mono eof

采取以下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.InTextReader,它没有EndOfFile属性。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

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

更新:很好。我发现2.4.x.y版本没有修复:-(。它将在即将发布的2.6版本中...抱歉。 更新2: mono-2-4于2009-03-13分支。我错过了3天!

答案 1 :(得分:1)

CTRL-D是unix样式的文件结尾...因为Mono派生自Microsoft领域它是否可能使用CTRL-Z? (我没有安装Mono,所以我在黑暗中拍摄了一张照片。)