0

我有一个基类Base和一个Child继承自这个基类的类。基类是IDisposable.

我调用Dispose了类的方法Child。有没有办法导航到覆盖的实现Child

Dim oChild as Child
oChild.Dispose()

当我在选择方法的同时按 F12 时Dispose(),我最终Base.Dispose()变成了Child.Dispose(). 请注意,声明是作为Child类型。

PS:我确实有 ReSharper,所以如果有人想用 ReSharper 找到一个简单的解决方案,那也可以。

编辑(代码示例):

Public Class CBase
  Implements IDisposable

  Private disposedValue As Boolean ' To detect redundant calls

  ' IDisposable
  Protected Overridable Sub Dispose(disposing As Boolean)
    If Not Me.disposedValue Then
      If disposing Then
        ' Disposing etc.
      End If
    End If
    Me.disposedValue = True
  End Sub

  Public Sub Dispose() Implements IDisposable.Dispose
    Dispose(True)
    GC.SuppressFinalize(Me)
  End Sub

End Class

Public Class CChild
  Inherits CBase

  Protected Overrides Sub Dispose(disposing As Boolean)
    Try
      If disposing Then
        ' Dispose child specific
      End If
    Finally
      MyBase.Dispose(disposing)
    End Try
  End Sub

End Class

Public Class CExample

  Public Sub ProvideExample()
    Dim oChild As New CChild
    oChild.Dispose() ' F12 on this leads me to CBase.Dispose
  End Sub

End Class
4

1 回答 1

0

der 覆盖方法中是否有任何代码?

因为通常如果你按 F12,你就不会爬到基地。我认为只有在被覆盖的方法中没有其他内容时?

于 2013-10-25T12:14:46.463 回答