我知道當談論陰影和重載時,VB.net非常奇怪,但是這個我完全被困惑了。陰影在函數中使用時表現得很奇怪
我正在使用與以下類似的模型。父類:
Public Class Base
Function F() As String
Return "F() in Base Class"
End Function
Function F(ByVal n As Integer) As String
Return "F(" + n.ToString() + ") in Base Class"
End Function
End Class
這:
Class Derived
Inherits Base
Shadows Function F() As String
Return "-"
End Function
End Class
運行以下時:
Sub Main()
Dim parent As Base = New Base()
Dim child As Derived = New Derived()
Console.WriteLine(parent.F())
Console.WriteLine(parent.F(1))
Console.WriteLine("------------")
Console.WriteLine(child.F())
Console.WriteLine(child.F(1)) 'this should not compile, due to the shadow keyword.
Console.Read()
End Sub
一個IndexOutOfRangeException異常。此外,在更改時(在派生類中): 返回「 - 」 for 返回「派生類中的函數」 控制檯打印字符'u'。 有人知道這個的原因嗎?