C#中using的三种用法

本文详细介绍了C#中using关键字的三种用法:引入命名空间、定义类型别名及资源清理,并通过示例代码展示了如何利用using进行有效的编程实践。

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

熟悉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接口。

上面语句相当于:

Class1 c = new Class1(); 
try
{
    // 执行代码 
} 
catch()
{ 
    // 异常处理 
} 
finally
{
     c.Disposable();
}

 

使用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();
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值