在这种情况下如何处置资源
本文关键字:资源 何处置 这种情况下 | 更新日期: 2023-09-27 18:37:18
>我有这样的类。
Class {
DataTable GetDetails(){
DataTable dt = new DataTable;
try{
dt = // assigning records here.
return dt;
}
catch{
}
finally{
}
}
}
此方法在其他类中使用。在这种情况下,如何实现IDispose,它会产生任何好的影响吗?
我是 C# 的新手,我只是阅读了有关处置的内容,无法明确说明这一点在我的情况下实施。
如何释放此数据表?
没有理由为此类实现 IDisposable。 IDisposable 仅适用于非托管资源:套接字、文件句柄、GDI 资源、数据库连接和委托订阅等内容。该类不使用这些。
我的疑问是,既然我传递了大量的数据,处理好不好?
传递大量数据是无关紧要的:这仍然是内存,内存是托管资源。同样,IDisposable 仅适用于非托管资源。
您正在返回 DataTable 类型实例,因此必须在使用它的类/实例中释放或释放它。或者更改模式并返回从 DataTable 实例中提取的内容,并在 finally/catch 中释放数据表。