【发布时间】:2014-01-24 06:30:30
【问题描述】:
我有这样的课:
class ContentManager : IDisposable
{
List<int> idlist = new List<int>();
public int Load(string path)
{
//Load file, give content, gets an id
//...
int id = LoadFile(myfilecontent);
idlist.Add(id);
return id;
}
public void Dispose()
{
//Delete the given content by id, stored in idlist
foreach(int id in idlist)
{
DeleteContent(id);
}
}
}
我想让它成为静态的,因为我只需要一个实例,并且可以在不提供实例的情况下从其他所有类访问该函数。
我可以将其中的每个变量设为静态,并将函数设为静态。
但我的问题是这个 IDisposable。我不能在静态类中有接口。我怎么能在最后做一些动作?我的意思是我可以删除该接口,但将函数保留在其中并使用我的主类,当我的主类被释放时,我调用 ContentManager.Dispose()。但是当我忘记了我的主要......
您对此有什么好的解决方案吗?确保每次程序关闭时都调用 Dispose?
编辑:我在图形卡中加载数据并取回指针。当我的应用程序关闭时,我需要从显卡中删除内容。为了安全起见,一切都被删除了,我使用 dispose。
【问题讨论】: