Console.ReadLine和Console.In.ReadLine之间的区别

时间:2017-08-29 01:42:47

标签: c# .net console console.readline

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

  • 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();
         }
    }
}

当我运行这个程序时,两行代码完全相同,即我在控制台上输入的任何字符串都会返回,直到我点击返回键。一个快速的谷歌搜索只给我一个链接differentiates between Console.Read and Console.ReadLine APIs。任何人都可以帮助我理解这两个单独的API做同样事情的重要性,即接收用户输入吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

这两个链接都很好地解释了它。看一些例子来看一种生产方式。

  

获取标准输出流

  

获取标准输入流

这是Console.WriteLine Method的另一个链接 它描述得很好,它使用标准输出流,因此它意味着 Console.Out

  

将指定的数据写入,然后是当前行终止符   标准输出流