我有一个这样的课。
Class {
DataTable GetDetails(){
DataTable dt = new DataTable;
try{
dt = // assigning records here.
return dt;
}
catch{
}
finally{
}
}
}
此方法用于其他类。 在这个场景中如何实现IDispose并且它会产生任何好的影响吗?
我是C#的新手,我刚刚读到了关于处理的内容,并且无法让自己明白 在我的情况下实施。
如何释放此DataTable?
答案 0 :(得分:3)
没有理由为此类实现IDisposable。 IDisposable仅适用于非托管资源:套接字,文件句柄,GDI资源,数据库连接和委托订阅等内容。那个班级没有使用这些。
我怀疑是因为我传递的数据有些大,是否善于处置?
传递大量数据是无关紧要的:那仍然是内存,内存是托管资源。同样,IDisposable仅适用于非托管资源。
答案 1 :(得分:-1)
您正在返回DataTable类型实例,因此必须在使用它的类/实例中对其进行Disposed或释放。或者更改模式并返回从DataTable实例中提取的内容,并将数据表置于finally / catch中。