Nejde to. Můžete použít Shadows a metodu pojmenovat Remove, ale je potřeba dobře si uvědomit, jaké to bude mít důsledky při polymorfním použití. Příklad:
Class Test
Overridable Function GetText() As String
Return "Zavolána původní metoda."
End Function
End Class
Class Test2
Inherits Test
Overrides Function GetText() As String
Return "Zavolána Overrides metoda."
End Function
End Class
Class Test3
Inherits Test
Shadows Function GetText() As String
Return "Zavolána Shadows metoda."
End Function
End Class
Dim t As New Test
Console.WriteLine(t.GetText())
Dim t2 As New Test2
Console.WriteLine(t2.GetText())
Dim t3 As New Test3
Console.WriteLine(t3.GetText())
'Tady to začíná být zajímavé - do t4 a t5 lze narvat cokoliv
'kompatibilního s Test. Důležité je, co se pak ve skutečnosti
'zavolá.
Dim t4 As Test = New Test2
Console.WriteLine(t4.GetText())
Dim t5 As Test = New Test3
Console.WriteLine(t5.GetText())
Chvíli si s tím hrajte a pochopíte, jaké to má důsledky. Mě to kdysi dávno také chvilku trvalo pochopit. Druhá možnost je implementovat rozhraní IDictionary(Of TKey, TValue), jenže potom budete muset ručně udělat funkčnost kolekce. Je vidět, že se pomaloučku dostáváte do tajů OOP, protože já jsem na začátku řešil uplně stejné věci.
|