C# using的使用

来源:互联网 发布:英雄联盟控软件 编辑:程序博客网 时间:2024/05/16 16:38

C#中using有三种用法:

1. 引入命名空间

2. 创建别名

3. 定义范围,强制资源清理

下面从这三个角度来谈谈using的应用。

(1)引入命名空间:using + 空间名,类似于java的import,C++的include。命名空间是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET中

很多的基本类型都位于System命名空间,数据操作类型位于System.Data命名空间。

(2)创建别名:using + 别名 = 包括详细命名空间信息的具体类型。当两个不同的命名空间中都包含了一个相同名字的类型,则在使用该类型时需要加上详细的命名空间来区别。通过using创建别名可以避免该问题。

using System;using aClass = NameSpace1.MyClass;using bClass = NameSpace2.MyClass;namespace NameSpace1 {    public class MyClass     {        public override string ToString()         {            return "You are in NameSpace1.MyClass";        }    }}namespace NameSpace2 {    class MyClass     {        public override string ToString()         {            return "You are in NameSpace2.MyClass";        }    }}namespace testUsing{    using NameSpace1;    using NameSpace2;    class Class1    {        static void Main(string[] args)        {            aClass my1 = new aClass();            Console.WriteLine(my1);            bClass my2 = new bClass();            Console.WriteLine(my2);            Console.WriteLine("Press any key");            Console.Read();        }    }}


(3)定义范围,在范围结束后清理资源:using语句提供了一个脉络清晰的机制来控制资源的生存期,创建的对象会在using语句结束时被摧毁,以下代码说明了using的机制:

using(TextReader reader=new StreamReader(filename)){    string line;    while((line=read.ReadLine())!=null)    {         Console.WriteLine(line);    }}等价于:{    TextReader reader=new StreamReader(filename);    try    {        string line;        while((line=read.ReadLine())!=null)        {            Console.WriteLine(line);        }    }    finally    {        if(reader!=null)        {            (IDisposible)reader.Dispose();        }    }}

using是在出了作用域以后调用Dispose方法,在Dispose方法内部会自动调用Close方法。

0 0
原创粉丝点击