在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
推荐阅读
- Using在C#中的关键作用
- .Net|.Net C# Using 关键字
- 计算机语言|C#中using关键字的作用
- using关键字在C#中的使用方法
- C语言实现栈的示例代码
- 如何在C#9|如何在C#9 中使用顶级程序 (top-level)
- 贪吃蛇 C语言
- map|在vue项目中引入高德地图并使用
- vue.js|在vue项目中引入高德地图
- 如何在Vue中使用高德地图