【C#】using用法
2012-03-26 08:47
274 查看
昨天的“【windows phone】simple note”中的代码中有一个using的用法,刚开始查看了一些资料说是强制关闭对象的一个命令。今天又查了一些资料,才明白,原来using指令调用了一个方法——Dispose()方法。而Dispose()方法的作用就是释放所有的使用资源。
例:
这个例子中的两个可处理对象没有被恰当的释放:SqlConnection和SqlCommand。两个对象同时保存在内存里直到析构函数被调用。
解决这个问题的方法就是在使用完命令和链接后就调用它们的Dispose:
使用using语句也可以很好的实现此功能,而且代码很清晰:
当你在一个函数内使用一个可处理对象时,using语句是最简单的方法来保证这个对象被恰当的处理掉。当这些对象被分配时,会被编译器放到一个try/finally块中。
有时候使用try/finally块的时候会发现如果发生错误,程序不会报错。本人感觉还是使用using语句比较好。
例:
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, string commandString ) { SqlConnection myConnection = new SqlConnection( connString ); SqlCommand mySqlCommand = new SqlCommand( commandString, 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语句的用法
- 【转载】C#中Using 的几种用法
- C#中的using和namespace用法
- c# using的几种用法
- C#中using指令的几种用法
- C#中using关键字的作用及用法
- C#中using的三种用法
- C#中using关键字的作用及其用法
- C#Using用法
- C#中using的三种用法
- using在C#中的强制资源清理的用法,何时用using,何时用try
- C# using的用法
- C# using 与Try-catch-finally的区别和用法
- using关键字在C#中共用三个用法:
- C#中using的三种用法
- C#.NET验证码智能识别学习笔记---02-C#.Net中Using关键字的用法
- C# using的用法
- C#中using的三种用法
- C#-using用法详解