C#码农笔记:从第一行代码到项目实战
上QQ阅读APP看书,第一时间看更新

2.2.4 using static指令

在using关键字后面加上static不仅可以引入目标命名空间,还可以引入目标命名空间下的静态类型。当静态类型被using static指令引入后,在代码中访问静态类的成员时就不必输入类型的名称,而是直接输入静态类型的成员名称就可以了。下面将通过一个示例来演示using static指令的用法。

Console类位于System命名空间下,并且它是一个静态类,所以它的所有成员都是静态的。所谓静态类型,即它是基于类型本身的,而不是基于类型实例的。在调用静态类型的成员之前不需要进行实例化,可以直接访问类型的成员。

首先,通过using static指令把System命名空间下的Console类引入。

    using static System.Console;

如果只引入了System命名空间,那么在访问Console类的成员时,需要写上类名,如

    Console.WriteLine(…);

而本例中,已经使用using static指令将Console类也引入了,所以在调用它的成员时,直接输入成员名字就可以了,不必再输入类名。比如:

    // 直接调用Console类的WriteLine方法
    WriteLine("可以直接调用静态方法。");
    // 直接调用Console类的ReadKey方法
    ReadKey();

在上面的代码中不必输入Console,就可以调用WriteLine和ReadKey方法了。要注意的是,如果使用using static指令引用指定的类型,在代码中只能访问该类型的静态成员(即带有static关键字声明的成员),不能访问实例成员(因为实例成员必须在类型实例化后才能访问)。

完整的示例代码请参考\第2章\Example_2。