considerar las siguientes clases que representan un sistema de pedidos:¿Es posible anular una propiedad y devolver un tipo derivado en VB.NET?
Public Class OrderBase
Public MustOverride Property OrderItem as OrderItemBase
End Class
Public Class OrderItemBase
End Class
Ahora, supongamos que queremos extender estas clases a un conjunto más específico de clases de orden, manteniendo la naturaleza global de OrderBase:
Public Class WebOrder
Inherits OrderBase
Public Overrides Property OrderItem as WebOrderItem
End Property
End Class
Public Class WebOrderItem
Inherits OrderItemBase
End Class
La propiedad Overriden en la clase WebOrder causará un error que indica que el tipo de devolución es diferente del definido en OrderBase ... sin embargo, el tipo de devolución es una subclase del tipo definido en OrderBase. ¿Por qué VB no lo permite?
Definir los artículos de su pedido como una matriz es una mala idea de todos modos. Use una lista o un Iumerable. –
En mi código real son listas. Perdón por la confusión con el(). –
Consulte también las respuestas a [esta pregunta C#] (http://stackoverflow.com/questions/157119/c-sharp-can-i-override-with-derived-types) por motivos y trucos/soluciones provisionales. ([C# 's método firma "nuevo" es "Sombras" en VB.Net] (http://stackoverflow.com/questions/8575418/difference-between-shadows-vb-net-and-new-c)) –