using是.net系统一个至关重要的关键字,它有两个方面的用途:
1作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。
2作为语句,用于定义一个范围,在此范围的末尾将释放对象
想了解using不得不提命名空间,它是.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是.NET中所有类的完全名称的一部分.分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。
下面就来说一说using这两个个方面的作用。
1作为指令
它有两个方面的作用一个时导入其他命名空间中定义的类型,另一个是为命名空间创建别名。
(1)导入其他命名空间中定义的类型。
既可以倒入用户自定义命名空间又可以导入系统定义命名空间。在.NET程序中,最多见的代码莫过于在程序文件的开头引入System命名空间,其原由在于System命名空间中封装了许多最基本最常用的操作。这样在程序中就可以直接使用命名空间里的类型,而不必将类型的命名空间也写上,这样减少了代码的冗长,实现类与类的类型的引用。比方,在.NET中许多的基本类型都位于System命名空间,数据操作类型位于System.Data命名空间,如下图所示:
(2)为命名空间创建别名
格式:using alias = namespace type;
其中namespace示意建立命名空间的别名;而type示意建立类型别名。
比方,在.NET Office使用中,常常会引入Microsoft.Office.Interop.Word.dll程序集,在引入命名空间时为了防止繁琐的类型输入,咱们通常为其建立别名如下:
using Generic = System.Collections.Generic;
using DataSourceGenerator = System.Func<System.Collections.IEnumerable>;
这样,就能够在程序中以Generic 来代替System.Collections.Generic前缀,假如要建立 List对象,则能够是这样,
Generic.List<string> = new Generic.List<string>();
DataSource func = Func1
并且还有一个优点就是,在一个.CS文件中引入了不一样的命名空间但是相似的类名的时刻,用别名就能够处理这疑问了。
2作为语句。
格式:using (Font font1 = new Font("Arial", 10.0f)){}
C# 通过 .NET Framework 公共语言运行库 (CLR) 自动释放用于存储不再需要的对象的内存。内存的释放具有不确定性;一旦 CLR 决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。 using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出 using 语句。
可以在 using 语句中声明对象(如上所示),或者在 using 语句之前声明对象,如下所示:
Font font2 = new Font("Arial", 10.0f);
using (font2)
{
// use font2
}
也许对于using以前你并不了解,那是不是通过这篇文章,你对它有了进一步的认识呢。在创建新项目的时候,总会在程序的开始出现一些using +namespace 。当时没有太在意感觉这应该是系统自带的吧,通过学习的深入才慢慢的体会到它的功能超乎想象。
不怕不知道,就怕不知道。