《C#编程入门与应用》—2.2 using 关键字
2.2 using 关键字
通过例 2-1 可以看到,C# 语法中包含 using 关键字。在 C# 语言中,using 可以作为指令, 用于为命名空间创建别名或者导入其他命名空间中定义的类型;using 也可以作为语句,用于 定义一个范围,在此范围的末尾将释放对象。
2.2.1 using 指令
在 C# 中,using 指令常见的用途有两种。
1.using 后跟命名空间名字
通过在using 后面跟随命名空间名字,就可以在程序中直接使用命令空间中的类型了, 而不必指定类型所属的详细命名空间,类似于 Java 的 import。这个功能也是最常用的,几乎 每个 C# 程序中都会用到。
【例2-2】
也可以用下面的代码分别引入 System.Text 类和 System.Data 类:
using System.Text;
using System.Data;
上述代码中,System.Text 和 System.Data 均是内置的命名空间类。using 指令除了可以引 入内置的命名空间类外,还可以引入自定义的命名空间以及自定义命名空间下的类。
using 引入命名空间,并不等于编译器编译时加载该命名空间所在的程序集,程序集的加 载取决于程序中对该程序集是否存在调用操作,如果代码中不存在任何调用操作,则编译器 将不会加载 using 引入的命名空间所在的程序集。因此,在源文件开头,引入多个命名空间, 并非加载多个程序集,不会造成“过度引用”的弊端。
2.using 为命名空间或类型创建别名
using 指令为命名空间或类型创建别名通常有以下两个原因:
● 缩写一个长名称。
● 消除同名的两个类型的歧义。
【例2-3】
下述代码分别引入 PC.Play 命名空间以及该空间下的 Games 类,并为它们指定别名:
using MyPlay = PC.Play; // 命名空间的别名
using MyPlayGames = PC.Play.Games; // 类型的别名
注意
并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要 使用,则两个都需要用 using 来定义别名。
【例2-4】
在同一文件中引入的不同命名空间中包括了相同名称的类型时,如 SharpMap.Geometries.Point 与 System.Drawing.Point,为了避免出现名称冲突,可以通过设定别名来解决:
using SGPoint = SharpMap.Geometries.Point;
using SDPoint = System.Drawing.Point;
提示
尽管我们可以通过类型全名称来加以区分,但是这显然不是最佳的解决方案。用 using 指令创 建别名,有效地解决了这种可能的命名冲突,这才是最佳的解决方案。
- 点赞
- 收藏
- 关注作者
评论(0)