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

5
我发现在C#的简单控制台应用程序中读取用户输入的两个API如下:
  • System.Console.ReadLine()
  • System.Console.In.ReadLine()
下面是一小段代码片段,我试图利用这两个API:
namespace StackOverflow
{
    class Program
    {
        static void Main(string[] args)
        {
            var input1 = System.Console.ReadLine();
            var input2 = System.Console.In.ReadLine();
         }
    }
}

当我运行这个程序时,这两行代码执行完全相同的操作,即无论我在控制台上输入什么字符串,在我按下回车键之前都会返回。快速搜索只得到了一个链接,其中区分了Console.Read和Console.ReadLine API。有谁可以帮助我理解这两个单独的API之间做相同事情的重要性,即接收用户输入?
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


2

我只想评论,但我没有权限。

这两个链接都很好地解释了它。查看示例以了解一种生产方式。

获取 标准输出流

获取 标准输入流

这里是另一个链接到Console.WriteLine 方法, 它很好地描述了它使用的标准输出流,因此意味着Console.Out

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


1
谢谢。那很有帮助。你现在拥有评论权限了。祝你在stackoverflow的旅程好运。 - RBT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接