C# using关键字使用
camellia 人气:0这里记录下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.factory a.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关键字的一些总结。
总结
加载全部内容