十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了C# 中using的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都创新互联公司专注于饶河网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供饶河营销型网站建设,饶河网站制作、饶河网页设计、饶河网站官网定制、小程序定制开发服务,打造饶河网络公司原创品牌,更为您提供饶河网站排名全网营销落地服务。
C# using作用,微软MSDN上解释总共有三种用途:
1、引用命名空间。2、为命名空间或类型创建别名。3、使用using语句。
1、引用命名空间,这样就可以直接在程序中引用命名空间的类型而不必指定详细的命名空间。
这个就不用说了吧,比如大家最常用的:usingSystem.Text;
2、为命名空间或类型创建别名:
当同一个cs引用了不同的命名空间,但这些命名控件都包括了一个相同名字的类型的时候,可以使用using关键字来创建别名,这样会使代码更简洁。注意:并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。
usingSystem; usingaClass=NameSpace1.MyClass; usingbClass=NameSpace2.MyClass; ...... //使用方式 aClassmy1=newaClass(); Console.WriteLine(my1); bClassmy2=newbClass(); Console.WriteLine(my2);
3、使用using语句,定义一个范围,在范围结束时处理对象。(不过该对象必须实现了IDisposable接口)。其功能和try,catch,Finally完全相同。
比如:
using(SqlConnectioncn=newSqlConnection(SqlConnectionString)){......}//数据库连接 using(SqlDataReaderdr=db.GetDataReader(sql)){......}//DataReader
PS:这里SqlConnection和SqlDataReader对象都默认实现了IDisposable接口,如果是自己写的类,那就要自己手动来实现IDisposable接口。比如:
using(Employeeemp=newEmployee(userCode)) { ...... } Emlpoyee.cs类: publicclassEmployee:IDisposable { 实现IDisposable接口#region实现IDisposable接口 /**//// ///通过实现IDisposable接口释放资源 /// publicvoidDispose() { Dispose(true); GC.SuppressFinalize(this); } /**//// ///释放资源实现 /// /// protectedvirtualvoidDispose(booldisposing) { if(!m_disposed) { if(disposing) { //Releasemanagedresources if(db!=null) this.db.Dispose(); if(dt!=null) this.dt.Dispose(); this._CurrentPosition=null; this._Department=null; this._EmployeeCode=null; } //Releaseunmanagedresources m_disposed=true; } } /**//// ///析构函数 /// ~Employee() { Dispose(false); } privateboolm_disposed; #endregion }
使用using语句需要注意的几点:
3.1、对象必须实现IDisposeable接口,这个已经说过,如果没有实现编译器会报错误。
如:
using(stringstrMsg="MyTest") { Debug.WriteLine(strMsg);//Can'tbecompiled }
3.2、第二个using对象检查是静态类型检查,并不支持运行时类型检查,因此如下形式也会出现编译错误。
SqlConnectionsqlConn=newSqlConnection(yourConnectionString);
objectobjConn=sqlConn;
using(objConn)
{
Debug .WriteLine(objConn.ToString());//Can'tbecompiled
}
不过对于后者,可以通过“as”来进行类型转换方式来改进。
SqlConnectionsqlConn=newSqlConnection(yourConnectionString); objectobjConn=sqlConn; using(objConnasIDisposable) { Debug.WriteLine(objConn.ToString()); }
3.3、当同时需要释放多个资源时候,并且对象类型不同,可以这样写:
using(SqlConnectionsqlConn=newSqlConnection(yourConnectionString)) using(SqlCommandsqlComm=newSqlCommand(yourQueryString,sqlConn)) { sqlConn.Open();//Openconnection //OperateDBhereusing"sqlConn" sqlConn.Close();//Closeconnection }
如果对象类型相同,可以写到一起:
using(FontMyFont=newFont("Arial",10.0f),MyFont2=newFont("Arial",10.0f)) { //useMyFontandMyFont2 }//compilerwillcallDisposeonMyFontandMyFont2
3.4、using关键字只是针对C#语句,对于VB等其他语言还没有对应的功能。
上述内容就是C# 中using的作用是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。