什么是`Console.Out`和`Console.In`的父类?

时间:2017-11-18 15:39:25

标签: c#

https://msdn.microsoft.com/en-us/library/system.console.out(v=vs.110).aspx表示Console.Out的类型为TextWriter。同样地,https://msdn.microsoft.com/en-us/library/system.console.in(v=vs.110).aspx表示Console.In的类型为TextReader

但是,TextWriterTextReader都是抽象类。所以他们不能直接拥有实例。

Console.OutConsole.In的哪些父类?

他们是具体的课程吗?

它们是TextWriterTextReader的派生类吗?

感谢。

3 个答案:

答案 0 :(得分:1)

  

Console.Out和Console.In的父类是什么?

这些是属性,而不是类型。它们旨在检索当前用于输入/输出的TextWriter / TextReader个实例。

您可以使用SetInSetOut设置这些实例。显然,您需要一个具体类的实例,例如StreamReader

答案 1 :(得分:1)

只需运行程序并询问两者的运行时类型:

 public static void Main(string[] args)
 {
     Console.WriteLine(Console.In.GetType().Name);
     Console.WriteLine(Console.Out.GetType().Name);
 }

无论打印出什么,这些都是您正在寻找的类型。我现在无法检查,但它们可能是internal(甚至私有嵌套)类,它们派生出你提到的抽象类型。

答案 2 :(得分:1)

根据sourceof.net Console.Out是一个简单的StreamWriter

http://referencesource.microsoft.com/mscorlib/system/console.cs.html#372

第372行。

Console.InStreamReader