using (XX xx = ...) 的含义

    技术2022-05-11  179

    主  题:using 什么时候用 作  者:overmind (overmind) 等  级: 信 誉 值:96 所属社区:.NET技术 .NET Framework 问题点数:20 回复次数:3 发表时间:2005-12-28 15:25:07 public AccountInfo SignIn(string userId, string password) { SqlParameter[] signOnParms = GetSignOnParameters(); signOnParms[0].Value = userId; signOnParms[1].Value = password; using (SqlDataReader rdr = SQLHelper.ExecuteReader(SQLHelper.CONN_STRING_NON_DTC, CommandType.Text, SQL_SELECT_ACCOUNT, signOnParms)) { ... } } 请问这里为什么要用using,一直不太明白这里用using的意思,请明白的您告诉我,谢谢! 回复人: ben_na(笨笨) ( ) 信誉:100 2005-12-28 16:41:00 得分: 0   有些资源,申请了,用完了,就要释放掉,比如文件打开后,要关闭, 数据库打开后,要关闭. 一般是这样 XX xx = null; try{ xx.Open(); } finally { if (xx != null) { xx.Dispose(); } } 其中Dispose()方法 是接口IDispose的方法. 你可以认为写上 using (XX xx = ...) { 这里尽情地用吧! } 它就像上面写的try finally一样.. Top <script language="jscript" src="/expert/XMLExtra.js" type="text/javascript"> </script><script language="jscript" src="/expert/GetNewJob.js" type="text/javascript"> </script> 回复人: imxh(风轻扬) ( ) 信誉:100 2005-12-28 16:50:00 得分: 0  

    using() { } ()里声明的变量在{}语句体执行完后就将对象回收,优化内存资源管理

       using (SqlDataReader rdr = SQLHelper.ExecuteReader(SQLHelper.CONN_STRING_NON_DTC, CommandType.Text, SQL_SELECT_ACCOUNT, signOnParms)) {

       using (SqlConnection conn = new SqlConnection(SQLHelper.CONN_STRING_NON_DTC)) {    conn.Open();    using (SqlTransaction trans = conn.BeginTransaction()) {     try {      SQLHelper.ExecuteNonQuery(trans, CommandType.Text, SQL_INSERT_SIGNON, signOnParms);      SQLHelper.ExecuteNonQuery(trans, CommandType.Text, SQL_INSERT_ACCOUNT, accountParms);      SQLHelper.ExecuteNonQuery(trans, CommandType.Text, SQL_INSERT_PROFILE, profileParms);      trans.Commit();          }catch {      trans.Rollback();      throw;     }    }   }

    Top

    最新回复(0)