读书人

Mono源代码学习札记:Console类(一)

发布时间: 2013-08-01 15:23:18 作者: rapoo

Mono源代码学习笔记:Console类(一)

?

Microsoft 实现的 Console 类只需要考虑 Windows 操作系统的控制台就行了,但是 Mono 的 Console 类就必须考虑跨平台了,要能够工作在 Windows 和 Unix 操作系统中。所以是比较复杂的。

准备在自己的工作目录下编译出 Console.dll 程序集

为了研究 Console 类的源代码,找出和 Console 类密切相关的源代码,我准备从 Console.cs 出发在自己的工作目录下编译出一个 Console.dll 程序集。我们来看看 Console 类的源代码位于 Mono 体系的什么位置:

各种类型之间的关系图

Mono源代码学习札记:Console类(一)

在上图中,最核心的类型如下所示:

    Console: public static class,调用下面的 ConsoleDriver 类的静态方法和静态属性来干活。ConsoleDriver: internal class,内部持有一个类型为 IConsoleDriver 接口的 internal 静态字段。IConsoleDriver: internal interface,以下三个类均实现 IConsoleDriver 接口。NullConsoleDriver: internal class,只实现最基本的控制台输入/输出功能,用于哑终端等情况。TermInfoDriver: internal class,用于 Unix 操作系统的各种终端。WindowsConsoleDriver: internal class,用于 Windows 操作系统的控制台。

可以点击下载 Console.7z。

读书人网 >编程

热点推荐