Jos*_*ank 2 .net vb.net oop generics clr
考虑:
Public MustInherit Class Column
Public ReadOnly Property ReturnSomethingUseful() As Object
Get
'return something useful
End Get
End Property
End Class
Public Class TypedColumn(Of T)
Inherits Column
Public Overrides ReadOnly Property ReturnSomethingUseful() As T
Get
'return the same something useful, but as type T
Return MyBase.ReturnSomethingUseful()
End Get
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
但是这会产生以下错误:
Public Overrides函数ReturnSomethingUseful(sValue As String)As Boolean'无法覆盖'Public Overridable函数ReturnSomethingUseful(sValue As String)As Object'因为它们的返回类型不同.
我接受你不能这样做,但我希望能够保留我正在尝试做的语义,即有一个非类型化版本处理Object,但派生类中的类型化版本知道具体的类型T.有没有办法实现这个目标?
是的,有:使用Shadows修饰符
Public Shadows ReadOnly Property ReturnSomethingUseful() As T
Get
'return the same something useful, but as type T
Return MyBase.ReturnSomethingUseful()
End Get
End Property
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |