首页 文章

C#Console.ReadLine()读取多行

提问于
浏览
0

我对编码比较陌生,对C#来说是全新的 . 我正在使用MSDN上的Channel 9教程,我遇到了一些我不理解的涉及Console.ReadLine()的东西 .

作为其中一个教程的一部分,讲师生成了以下代码:

static void Main(string[] args)
    {
        StreamReader myReader = new StreamReader("Values.txt");
        string line = "";

        while (line != null)
        {
            line = myReader.ReadLine();
            if (line != null)
            {
                Console.WriteLine(line);
            }
        }

        myReader.Close();
        Console.ReadLine();
    }

此代码有效 - 它从Values.txt读取一系列数字,每个数字都在各自的行上,然后将它们发送到控制台窗口 . 我的问题是为什么它有效 . 我的理解是Console.ReadLine()从输入流中读取一行 . 但在这种情况下,尽管不是while循环的一部分,但它正在读取几行 . 我原本以为,在编写时,控制台窗口只显示Values.txt的最后一行,而Console.ReadLine()必须在if语句中跟随Console.WriteLine(line)才能显示所有行 . 我不明白的是什么?谢谢您的帮助!

2 回答

  • 0

    Console.WriteLine()是输出到控制台窗口的命令,因为它是while循环的一部分 . 它打印文件中的每一行 .

    Console.ReadLine()在这里结尾,只是添加强制调试控制台窗口保持打开,直到用户输入和命中输入,通常对于这种情况,Console.ReadKey()更合适 . 但在上面的代码中,Console.ReadLine()不是从文件中读取数字的代码 . 这是myReader.ReadLine();在while循环中 . 所以while循环,一直从文件中读取行,直到它到达文件末尾 .

  • 0

    每次循环执行时,它都会读取一行 . 如果该行不为null,则它会一次又一次地循环,直到没有其他行为止 . 每次循环并且 line 不为null时,它会打印该行 .

    这一切都发生在最后的 Console.ReadLine() 陈述之前 . 所有这一切都是暂停程序,以便您可以看到输出 .

相关问题