C#中using的三种用法

本文详细介绍了C#中using关键字的三种用法:引入命名空间、定义别名及资源管理。通过示例展示了如何简化命名空间的引用并确保资源得到妥善释放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值