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

上面语句相当于:

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

 

C#using三种主要用法。首先,使用using命名空间可以简化代码编写,不需要指定详细的命名空间。例如,使用using System.Windows.Media;可以直接使用System.Windows.Media的类和方法,而不需要每次都写完整的命名空间。 其次,using语句也是using的一种用法。使用using语句可以在一定的范围内有效地释放资源。只要在using语句的作用域内,使用的对象实现了IDisposable接口,使用using语句结束时会自动调用Dispose方法释放资源。这种用法主要用于需要手动释放资源的类,比如数据库连接对象。例如,可以使用using(SqlConnection conn=new SqlConnection("连接字符串")){...}来在代码块结束时自动释放SqlConnection对象。 最后,using别名是using的第三种用法。使用using别名可以为命名空间或类型创建一个简短的别名,以便在代码更方便地使用。比如,可以使用using MyAlias = System.Windows.Media;来将System.Windows.Media命名空间简化为MyAlias,在代码使用MyAlias代替System.Windows.Media。这样可以减少代码的冗长,并提高代码的可读性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [C# 使用using三种方法](https://blog.csdn.net/fuhanghang/article/details/84453734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [C#using用法](https://blog.csdn.net/chunchunlaila/article/details/105589780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值