谈C# using的用法与好处

谈C# using的用法与好处,第1张

概述之前的一篇文章中的代码中有一个using的用法,刚开始查看了一些资料说是强制关闭对象的一个命令。今天又查了一些资料,才明白,原来using指令调用了一个方法――Dispose()方法。而Dispose()方法的作用就是释放所有的

之前的一篇文章中的代码中有一个using的用法,刚开始查看了一些资料说是强制关闭对象的一个命令。今天又查了一些资料,才明白,原来using指令调用了一个方法――dispose()方法。而dispose()方法的作用就是释放所有的使用资源。

例:

public voID ExecuteCommand( string connString,string commandString ) {  sqlConnection myConnection = new sqlConnection( connString );  sqlCommand MysqLCommand = new sqlCommand( commandString,myConnection );   myConnection.open();  MysqLCommand.ExecuteNonquery(); } 

这个例子中的两个可处理对象没有被恰当的释放:sqlConnection和sqlCommand。两个对象同时保存在内存里直到析构函数被调用。

解决这个问题的方法就是在使用完命令和链接后就调用它们的dispose:

public voID ExecuteCommand( string connString,myConnection );   myConnection.open();  MysqLCommand.ExecuteNonquery();   MysqLCommand.dispose( );  myConnection.dispose( ); } 

使用using语句也可以很好的实现此功能,而且代码很清晰:

public voID ExecuteCommand( string connString,string commandString ) {  using ( sqlConnection myConnection = new  sqlConnection( connString ))  {   using ( sqlCommand MysqLCommand = new sqlCommand( commandString,myConnection ))   {    myConnection.open();    MysqLCommand.ExecuteNonquery();   }  } } 

当你在一个函数内使用一个可处理对象时,using语句是最简单的方法来保证这个对象被恰当的处理掉。当这些对象被分配时,会被编译器放到一个try/finally块中。

sqlConnection myConnection = null;  // Example Using clause: using ( myConnection = new sqlConnection( connString )) {  myConnection.open(); }   // example Try / Catch block: try {  myConnection = new sqlConnection( connString );  myConnection.open(); } finally {  myConnection.dispose( ); } 

有时候使用try/finally块的时候会发现如果发生错误,程序不会报错。本人感觉还是使用using语句比较好。
以上就是本文的全部内容,希望对大家的学习有所帮助。

总结

以上是内存溢出为你收集整理的谈C# using的用法与好处全部内容,希望文章能够帮你解决谈C# using的用法与好处所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1259244.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存