看不懂下面的代码,请指教?
看到一段代码,好象是处理数据库连接及其它工作的类:
public class Database : IDisposable {
// 连接数据源
private SqlConnection con;
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name= "procName "> 存储过程的名称 </param>
/// <returns> 返回存储过程返回值 </returns>
public int RunProc(string procName) {
SqlCommand cmd = CreateCommand(procName, null);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters[ "ReturnValue "].Value;
}
不清楚 : IDisposable 这个是个什么东东?
------解决方案--------------------继承IDisposable这个接口,至于这是啥。。。msdn查一下
------解决方案--------------------IDisposable 接口
定义一种释放分配的非托管资源的方法。
代码是否没有贴全呢?在继承了该接口后 应该显示的实现dispose方法才对嘛
------解决方案--------------------IDisposable 接口
定义一种释放分配的非托管资源的方法。
------解决方案--------------------继承了一个.netfreamwork内置的接口而已
和继承自己定义的接口 没什么区别
继承IDisposable 就是用来及时释放资源的 而不必等到GC自动回收才释放资源
------解决方案--------------------接口
------解决方案--------------------这下代码帖全了,帖了整个屏幕了
------解决方案--------------------实现这个接口是为了给使用者一个能手动释放对象的机会
例如
object a = ...
//你如何在下一句释放它
a = null ?? //不能确定,只能等待gc来收拾
如果 a 实现了idisposeable
则可
a.dispose();//即可尤其是a 里如果包括一个非托管资源,比如数据库联接,文件句柄等不受框架管理的东东时,尤其重要
还有实现了这个接口,你可以用
using( youclass a = new yourclass )
{
}//到这里a 已经自动释放
------解决方案--------------------建议楼主一同看下关于接口的资料。我也不是很理解,只能是遇到的时候再去查,不过我知道那是个接口,呵呵