我正在使用 .net 1.1。我有一个 session 类,我在其中存储了许多静态变量,这些变量保存了一些供许多类使用的数据。
我想找到一种简单的方法来销毁这个类,而不是一个一个地重置每个变量。例如,如果有一个静态类 MyStatic,我想通过写 MyStatic = null 来销毁/从内存中删除这个类,这目前是不可能的,
附加问题。
单例的想法很好,但是我有以下问题:
如果实现了singleton,'single'对象仍然会保留在内存中。在单例中,我们只检查一个实例是否已经存在。我怎样才能确保这个实例变量也被销毁。
我有一个主类,它初始化静态类中的变量。即使我计划实现一个 Rest() 方法,我也需要从一个方法中调用它,例如,主类中的析构函数。但是这个析构函数只有在 GC 在内存中收集这个主类对象时才会被调用,这意味着 Reset() 被调用得很晚
谢谢 普拉迪普
最佳答案
不要使用静态类来存储变量。使用一个实例(如果您在任何给定时间只需要一个实例,则将其设为单例。)然后您可以实现 IDisposible,并在您想要销毁它时调用 Dispose()。
有关更多信息,请查看此站点:http://csharpindepth.com/Articles/General/Singleton.aspx
编辑
该对象仍需进行垃圾回收,因此除非您使用大量非托管资源,否则应该没问题。您可以实现 IDisposible 来清理任何需要清理的资源。
关于c# - 如何销毁C#中的静态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531199/