C#中using的三种用法

来源:互联网 发布:矩阵lu分解步骤 编辑:程序博客网 时间:2024/04/29 16:12

C#中using的三种用法

 

 

熟悉C++的人看到using就想到引用命名空间,当然在C#中也一样。

但同时C#中的using比C++中的多了两项功能,下面详细说明。

第一种用法:using + 命名空间

这种用法跟C++的一样,引用一个命名空间,这样在程序里就可以直接引用命名空间里的类型,而不用详细指定其完整路径。

例如:using System;

这样当调用System.Write()时就可以直接写Write()就可以了。

第二种用法: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;   

     /// <summary>   

     /// Class1 的摘要说明。   

     /// </summary>   

     class Class1   

     {   

         /// <summary>   

         /// 应用程序的主入口点。   

         /// </summary>   

         [STAThread]   

         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();   

         }   

     }   

}  

第三种用法:

using (Class1 c = new Class1())

{

      //代码段

}

用于强制资源清理,清理非托管资源,不受GC控制的资源。Using结束后会隐式的调用Disposable方法。

当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。但是要注意,当对象使用using关键字的时候,必须实现IDisposable接口。

上面语句相当于:

  1. Class1 c = new Class1();    
  2. try    
  3. {   
  4.   
  5.     //执行代码    
  6.   
  7. }    
  8.   
  9. catch()    
  10. {    
  11.   
  12.     //异常处理    
  13.   
  14. }    
  15. finally    
  16.   
  17. {    
  18.   
  19.      c.Disposable();    
  20.   
  21. }  

 

使用using的一个例子:

class C : IDisposable  

{  

    public void UseLimitedResource()  

    {  

        Console.WriteLine("Using limited resource...");  

    }  

 

    void IDisposable.Dispose()  

    {  

        Console.WriteLine("Disposing limited resource.");  

    }  

}  

 

class Program  

{  

    static void Main()  

    {  

        using (C c = new C())  

        {  

            c.UseLimitedResource();  

        }  

        Console.WriteLine("Now outside using statement.");  

        Console.ReadLine();  

    }  

原创粉丝点击