.net - 将 VB6 容器类升级到 VB.NET

标签 .net vb.net collections vb6 vb6-migration

好的,所以我正在将 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/

相关文章:

c# - 如何在具有通用接口(interface)和继承的 C# 中使用 "where"关键字

.net - 如何在 Windows Azure 上获取代码证书

vb.net - 如何在 vb .net 中获取文件句柄

java - Spring Thymeleaf 如何将复选框的值绑定(bind)到集合字段

javascript - IE8 tinyMCE .NET 插入图像

c# - 如何在 C# 中获取整个请求的 url?

.net - 如何在 VB.NET 中重命名文件以具有唯一后缀?

vb.net - 在 VB.NET 中将日期时间转换为等效的十六进制

Python:是否有双端队列的线程安全版本?

java - 使用 ArrayList 构造函数制作 List 的转换副本