我有以下类设置,我不明白为什么它不会编译。如何使用泛型覆盖派生类中的属性
我得到的“公共覆盖物业˚F作为T”
- “公共覆盖物业˚F作为T”下面的错误,因为他们的返回类型不同,无法重写“公众可重写属性˚F作为X”。
- 这混淆了我,因为我受限吨至从十衍生
有人能解释我是如何实现这一目标?最后,我需要有A类和B类,其中B从A继承。其中A具有类型X的可重写属性F,并且B使用从X派生的类型重写F.任何建议都将被赞赏。如果这不能完成,我有兴趣知道为什么(限制.NET?)以及我应该如何去做。
Public Class X
End Class
Public Class Y
Inherits X
End Class
Public Class A
Public Overridable Property F As X
End Class
Public Class A(Of T As X)
Inherits A
Public Overrides Property F As T
End Class
Public Class B
Inherits A(Of Y)
Public Overrides Property F As Y
End Class
谢谢!
为什么你需要这个,如果你将它限制为'X'或它的任何后代呢? –
@VisualVincent - 我没有在这些类中包含可重写的函数。他们每个人都根据他们所在的类来做特定的工作。基本上,类B基于BF中的值具有特定于一个用例的业务逻辑,而对于所有其他实例则回退到A并按定义完成工作在A. –
即使对SO样本也是“好名字”) – Fabio