0

在 VB 6.0 中,我有一个类:

Private Sub Class_Terminate()
  Call MethodFoo(False)
  Set objet1 = Nothing
  Set object2 = Nothing
End Sub

现在我需要在 C# 中做同样的事情,我不太担心这两个空对象,但是那个被调用的该死的 MethodFoo() 我需要那个。在其 C# 等效类中添加它的安全位置在哪里?(而不是在终结器方法中),由于在我的 C# 类中有这个终结器方法并且我也想摆脱它,我已经遇到了奇怪的错误。

4

2 回答 2

4

C# 是垃圾收集,这意味着没有确定性的对象清理。

相反,您应该在块IDisposable内实现和使用您的类。using()

于 2012-11-28T22:16:40.247 回答
1

在 C# 中应避免使用自定义终结器,因为垃圾收集器会不确定地调用它们。

实现IDisposable接口和使用Dispose()方法。是一篇如何正确执行此操作的文章。

于 2012-11-28T22:20:31.367 回答