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

Difference between Console.ReadLine and Console.In.ReadLine

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

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

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

当我 运行 这个程序时,这两行代码做的是完全相同的事情,即我在控制台上输入的任何字符串都是 returned 直到我点击 return 钥匙。快速谷歌搜索只找到了一个 link,其中 differentiates between Console.Read and Console.ReadLine APIs。任何人都可以帮助我理解这两个独立的 API 做同样的事情(即接收用户输入)的重要性吗?

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

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

这两个link都解释得很好。看例子看一种制作。

Gets the standard output stream.

Gets the standard input stream.

这里还有一个 link 到 Console.WriteLine Method 它描述得很好,它使用 标准输出流 ,所以它意味着 Console.Out.

Writes the specified data, followed by the current line terminator, to the standard output stream.