Тенерирование, вероятно, не делает того, что вы думаете.
Рассмотрим следующие классы:
Public MustInherit Class A
Public Function fX() As Integer
Return 0
End Function
End Class
Public Class B
Inherits A
Public Shadows Function fX() As Integer
Return 1
End Function
End Class
Теперь я использую их:
Dim oA As A
Dim oB As New B
oA = oB
Вероятно, вы думаете, что oA и oB имеют одинаковое право?
Нет.
oA.fx = 0, в то время как oB.fx = 1
Imho это очень опасное поведение, и это почти не упоминается в документах.
Если вы использовали они будут одинаковыми.
Таким образом, хотя есть законные способы использования теней, вероятность того, что вы делаете, не является одним из них, и этого следует избегать.