using

using

C# 语言中定义一个范围
using是C# 语言中定义一个范围,将在此范围之外释放一个或多个对象。[1]
    中文名: 外文名: 别名: 名称:using 属于:C# 语言 含义:释放一个或多个对象

C# 语言参考

作为语句

用于定义一个范围,在此范围的末尾将释放对象

C#通过.NETFramework公共语言运行库(CLR)自动释放用于存储不再需要的对象的内存。内存的释放具有不确定性;一旦CLR决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。

using语句允许程序员指定使用资源的对象应当何时释放资源。为using语句提供的对象必须实现IDisposable接口。此接口提供了Dispose方法,该方法将释放此对象的资源。

可以在到达using语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出using语句。

作为指令

用于为命名空间创建别名或导入其他命名空间中定义的类型

①.允许在命名空间中使用类型,这样,您就不必在该命名空间中限定某个类型的使用:

using System.Text;

②.为命名空间或类型创建别名。

using Project = PC.MyCompany.Project;

using 指令的范围限制为包含它的文件。

创建using别名,以便更易于将标识符限定到命名空间或类型。

创建using指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。

命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。若要查看系统定义的命名空间的列表。

深入讨论

引言

在.NET大家庭中,有不少的关键字承担了多种角色,例如new关键字就身兼数职,除了能够创建对象,在继承体系中隐藏基类成员,还在泛型声明中约束可能用作类型参数的参数,在详细讨论using的多重身份的基础上来了解.NET在语言机制上的简便与深邃。

那么,using的多重身份都体现在哪些方面呢,我们先一睹为快吧:

· 引入命名空间

· 创建别名

· 强制资源清理

引入命名空间

using作为引入命名空间指令的用法规则为:

using Namespace;

在.NET程序中,最常见的代码莫过于在程序文件的开头引入System命名空间,其原因在于System命名空间中封装了很多最基本最常用的操作,下面的代码对我们来说最为熟悉不过:

using System;

这样,我们在程序中就可以直接使用命名空间中的类型,而不必指定详细的类型名称。using指令可以访问嵌套命名空间。

关于:命名空间

命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET中很多的基本类型都位于System命名空间,数据操作类型位于System.Data命名空间。

误区

using类似于Java语言的import指令,都是引入命名空间(Java中称作包)这种逻辑结构;而不同于C语言中的#include指令,用于引入实际的类库,

using引入命名空间,并不等于编译器编译时加载该命名空间所在的程序集,程序集的加载决定于程序中对该程序集是否存在调用操作,如果代码中不存在任何调用操作则编译器将不会加载using引入命名空间所在程序集。因此,在源文件开头,引入多个命名空间,并非加载多个程序集,不会造成“过度引用”的弊端。 using为命名空间创建别名的用法规则为:

using alias = namespace | type;

其中namespace表示创建命名空间的别名;而type表示创建类型别名。例如,在.NET Office应用中,常常会引入Microsoft.Office.Interop.Word.dll程序集,在引入命名空间时为了避免繁琐的类型输入,我们通常为其创建别名如下:

using MSWord = Microsoft.Office.Interop.Word;

这样,就可以在程序中以MSWord来代替Microsoft.Office.Interop.Word前缀,如果要创建Application对象,则可以是这样,

private static MSWord.Application ooo = new MSWord.Application();

同样,也可以创建类型的别名,用法为:

而创建别名的另一个重要的原因在于同一cs文件中引入的不同命名空间中包括了相同名称的类型,为了避免出现名称冲突可以通过设定别名来解决。

以using创建别名,有效的解决了这种可能的命名冲突,尽管我们可以通过类型全名称来加以区分,但是这显然不是最佳的解决方案,using使得这一问题迎刃而解,不费丝毫功夫,同时在编码规范上看来也更加的符合编码要求。

结论

一个简单的关键字,多种不同的应用场合。本文从比较全面的角度,诠释了using关键字在.NET中的多种用法,值得指出的是这种用法并非实现于.NET的所有高级语言,本文的情况主要局限在C#中。

相关词条

相关搜索

其它词条