好的,所以我正在将 VB6 应用程序升级到 VB.NET,但我不确定如何使我正在构建的容器类的 class_terminate 组件现代化:
Private Sub class_terminate()
If Not (colUserMappings Is Nothing) Then
Set colUserMappings = Nothing
End If
End Sub
问题是 .NET 相当于这个
.Finalize
留下一些潜在的运行时错误,因为将容器的最终引用设置为空并不一定会破坏容器,因为 .NET 语言具有非确定性的终结。在这种情况下,我将如何以调用其终止或最终化函数实际上会导致容器在最后销毁的方式现代化集合类?有什么好的解决方法吗?
最佳答案
我不会太在意这个。 .Net 是一个托管的垃圾收集环境。我很确定当不再需要这些对象时,CLR 会负责为您收集这些对象。
作为一般规则,当您获得非托管资源(例如文件、DB 连接、COM 对象等)时,您应该只担心这些类型的事情。在这种情况下,您可能需要实现 IDisposable
并正确释放 Dispose()
中的所有对象/资源方法。
关于.net - 将 VB6 容器类升级到 VB.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17049993/