.net - 基类中的地址

标签 .net vb.net oop

当引用一个方法的地址时,我们是否应该考虑重写?

Class B 
  Inherits A

  Overrides Sub Foo
     Console.WriteLine("B")
  End Sub
End Class


Class A
  Public Sub PFoo
  ... AddressOf Foo ... ' WHAT WILL DO THIS METHOD??? '
  End

  Protected Overridable Sub Foo()
     Console.WriteLine("A")
  End Sub
End Class

最佳答案

它将打印 B。为了更清楚地表明您的意图,您可以放置​​ AddressOf Me.Foo。另外,仅供引用,如果您放置 MyClass.Foo,它将打印 A

    Module Module1

    Sub Main()

        Dim b As B = New B
        b.PFoo() ' prints B
        Console.ReadLine()

    End Sub

End Module

Public Class B
    Inherits A

    Protected Overrides Sub Foo()
        Console.WriteLine("B")
    End Sub
End Class

Public Class A
    Public Sub PFoo()
        Dim f As Action = New Action(AddressOf Me.Foo)
        f.Invoke()
    End Sub

    Protected Overridable Sub Foo()
        Console.WriteLine("A")
    End Sub
End Class

关于.net - 基类中的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5327138/

相关文章:

c# - wcf 3.5 REST 服务使用 XML,但不使用 JSON 响应格式

c# - 直接解析子串为double

c# - 是否有适用于 .NET 的内置或广泛使用的不区分大小写的字符串类型

.net - Asp.Net Core 1.0 和.Net Core 1.0 之间的区别?

mysql - DateTimePicker 选择日期之间的记录

c# - 如何使用隐式实现在 VB.NET 中创建接口(interface)

c# - 与流程沟通的最佳方法

php - 如何使用 Construction() 参数自动设置 PHP 类属性?

php - 使用 OOP 从 MySQL 获取数据

c# - 功能灵活的 super 类型