5

我在 C# 中的一个简单控制台应用程序中遇到了这两个 API 来读取用户的输入:

  • System.Console.ReadLine()
  • System.Console.In.ReadLine()

这是一个小代码片段,我试图利用这两个:

namespace StackOverflow
{
    class Program
    {
        static void Main(string[] args)
        {
            var input1 = System.Console.ReadLine();
            var input2 = System.Console.In.ReadLine();
         }
    }
}

当我运行这个程序时,这两行代码的作用完全相同,即在我按下返回键之前,我在控制台上键入的任何字符串都会返回。一个快速的谷歌搜索只给我一个链接,它区分 Console.Read 和 Console.ReadLine APIs。谁能帮助我理解这两个独立的 API 做同样的事情(即接收用户输入)的重要性?

4

2 回答 2

7
System.Console.ReadLine()

是一个别名

System.Console.In.ReadLine()

所以它们是完全相同的。

这是 Microsoft 参考源中 ReadLine 的代码。

[HostProtection(UI=true)]
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static String ReadLine()
{
    return In.ReadLine();
}

如您所见,Console.ReadLine() 只是调用 Console.In.ReadLine()。

http://referencesource.microsoft.com/#mscorlib/system/console.cs,bc8fd98a32c60ffd

于 2017-08-29T01:58:24.437 回答
2

我真的只是发表评论,但我没有权限。

这两个链接都很好地解释了它。看例子看一种制作。

获取标准输出流

获取标准输入流

这是Console.WriteLine 方法的另一个链接, 它描述得很好,它使用标准输出流,所以它的意思是Console.Out

将指定的数据(后跟当前行终止符)写入标准输出流

于 2017-08-29T02:05:11.837 回答