在c语言中new关键字的作用是,c中using关键字的作用及其用法

在c语言中new关键字的作用是,c中using关键字的作用及其用法
文章图片
c中using关键字的作用及其用法
【在c语言中new关键字的作用是,c中using关键字的作用及其用法】C#中 using 关键字的作用及其用法 分类: using using 用法 2012-05-22 09:04 3855 人阅读 评论(4) 收藏 举报 c#datasetresourcesobjectnullcompiler C#中 using 关键字的作用及其用法 using 的用途和使用技巧。using 关键字微软 MSDN 上解释总共有三种用途:1、引用命名空间。2、为命名空间或类型创建别名。3、使用 using 语句。1、引用命名空间,这样就可以直接在程序中引用命名空间的类型而不必指定详细的命 名空间。这个就不用说了吧,比如大家最常用的:using System.Text; 2、为命名空间或类型创建别名:当同一个 cs 引用了不同的命名空间,但这些命名控件都包括了一个相同名字的类 型的时候,可以使用 using 关键字来创建别名,这样会使代码更简洁。注意:并不是说两个 名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两 个都需要用 using 来定义别名的。 [csharp] view plaincopy using System; using aClass = NameSpace1.MyClass; using bClass = NameSpace2.MyClass; //使用方式 aClass my1 = new aClass(); Console.WriteLine(my1); bClass my2 = new bClass(); Console.WriteLine(my2); 3、使用 using 语句,定义一个范围,在范围结束时处理对象。(不过该对象必须实现了 IDisposable 接口) 。其功能和 try ,catch,Finally 完全相同。比如: [csharp] view plaincopyusing (SqlConnection cn = new SqlConnection(SqlConnectionString)){}//数据库连接 using (SqlDataReader dr = db.GetDataReader(sql)){}//DataReader PS:这里 SqlConnection 和 SqlDataReader 对象都默认实现了 IDisposable 接口,如 果是自己写的类,那就要自己手动来实现 IDisposable 接口。比如: using (Employee emp = new Employee(userCode)) { } Emlpoyee.cs 类: public class Employee:IDisposable { 实现 IDisposable 接口#region 实现 IDisposable 接口 /** /// 通过实现 IDisposable 接口释放资源 /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /** /// 释放资源实现 /// /// protected virtual void Dispose(bool disposing) { if (!m_disposed) { if (disposing) { // Release managed resources if(db!=null) this.db.Dispose(); if(dt!=null) this.dt.Dispose(); this._CurrentPosition = null; this._Department = null; this._EmployeeCode = null; } // Release unmanaged resources m_disposed = true; } } /** /// 析构函数 /// ~Employee() { Dispose(false); } private bool m_disposed; #endregion } 使用 using 语句需要注意的几点:3.1、对象必须实现 IDisposeable 接口,这个已经说过,如果没有实现编译器会报错误。如: [csharp] view plaincopy using( string strMsg = “My Test“ ) { Debug.WriteLine( strMsg ); //Can t be compiled } 3.2、第二个 using 对象检查是静态类型检查,并不支持运行时类型检查,因此如 下形式也会出现编译错误。 [csharp] view plaincopy SqlConnection sqlConn = new SqlConnection( yourConnectionString ); object objConn = sqlConn; using ( objConn ) { Debug.WriteLine( objConn.ToString() ); //Can t be compiled } 不过对于后者,可以通过“as”来进行类型转换方式来改进。 [csharp] view plaincopy SqlConnection sqlConn = new SqlConnection( yourConnectionString ); object objConn = sqlConn; using ( objConn as IDisposable ) Debug.WriteLine( objConn.ToString() ); 3.3、当同时需要释放多个资源时候,并且对象类型不同,可以这样写: [csharp] view plaincopy using( SqlConnection sqlConn = new SqlConnection( yourConnectionString ) ) using( SqlCommand sqlComm = new SqlCommand( yourQueryString, sqlConn ) ) { sqlConn.Open(); //Open connection //Operate DB here using “sqlConn“ sqlConn.Close(); //Close connection } 如果对象类型相同,可以写到一起: [csharp] view plaincopy using (Font MyFont = new Font(“Arial“, 10.0f), MyFont2 = new Font(“Arial“, 10.0

    推荐阅读