这篇日志记录下C#中using关键字的使用方法。
Using的使用大致分别以下三种:
1:using指令(命名空间)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2:using语句
某些类型的非托管对象有数量限制或很耗费系统资源,在代码使用完它们后,尽可能快的释放它们时非常重要的。using语句有助于简化该过程并确保这些资源被适当的处置(dispose)。
这里大致分为两种形式。
(1):using (ResourceType Identifier = Expression ) Statement
Using表达式
圆括号中的代码分配资源,Statement是使用资源的代码
using语句会隐式产生处置该资源的代码,其步骤为:
a:分配资源
b:把Statement放进try块
c:创建资源的Dispose方法的调用,并把它放进finally块
// using 语句using (usings.factory fac = new usings.factory()){fac.CreateProduct();}
(2):using (Expression) Statement
Using对象
Expression 表示资源,Statement是使用资源,资源需要在using之前声明
usings.factory facs = new usings.factory();// using 对象using (facs){facs.CreateProduct();}
Factory类:
namespace usings
{public class factory : IDisposable{public void CreateProduct(){Console.WriteLine("创建了一个产品!");}public void Dispose(){Console.WriteLine("该对象销毁~");}}
}
这里需要说我遇到的一个小问题,如图所示:
解决方法很简单,自定义的类继承IDisposable类,实现其Dispose方法。
具体如我上边的代码所示。
3:using别名
用using为命名空间或类型定义别名,当引入的多个命名空间包含相同名字的类型时,需要使用该类型时,可以通过using为其指定别名,使代码更加简洁,避免冲突。
这里放上这次测试使用的全部代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;// 别名
using afactory = usings.usingsaaa.factory;
using bfactory = usings.usingsbbb.factory;namespace usings
{class Program{static void Main(string[] args){// using 语句using (usings.factory fac = new usings.factory()){fac.CreateProduct();}Console.WriteLine("------------------------------------------");usings.factory facs = new usings.factory();// using 对象using (facs){facs.CreateProduct();}Console.WriteLine("------------------------------------------");// 别名afactory a = new afactory(); // 代替usingsaaa.factorya.CreateProduct();Console.WriteLine("------------------------------------------");bfactory b = new bfactory(); // 代替usingsbbb.factory b.CreateProduct();Console.ReadKey();}}namespace usingsaaa{public class factory{public void CreateProduct(){Console.WriteLine("aaa工厂创建了一个产品!");}}}namespace usingsbbb{public class factory{public void CreateProduct(){Console.WriteLine("bbb工厂创建了一个产品!");}}}namespace usings{public class factory : IDisposable{public void CreateProduct(){Console.WriteLine("创建了一个产品!");}public void Dispose(){Console.WriteLine("该对象销毁~");}}}
}
以上就是对using关键字的一些总结。
有好的建议,请在下方输入你的评论。