теперь я надеюсь, что возможно следующее, хотя я не совсем уверен, что это так ...
Ниже приведена настройка того, что, я надеюсь, возможно (в VB.net, не стесняйтесь отвечать на C #, и я должен быть в состоянии решить это):
Public Class A
Private _name As String
Private _s As SearchA
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal Value As String)
_name = Value
End Set
End Property
Public Property S() As SearchA
Get
Return _s
End Get
Set(ByVal Value As SearchA)
_s = Value
End Set
End Property
Public Sub New(ByVal name As String)
_name = name
_s = New SearchA()
End Sub
Public Function GetSearch() As String
Return _s.Search
End Sub
End Class
и
Public Class SearchA
Private _search As String
Public Property Search () As String
Get
Return _search
End Get
Set(ByVal Value As String
_search = Value
End Set
End Property
Public Sub New()
_search = "Search using Base"
End Sub
End Class
и
Public Class B
Inherits A
Private Shadows _s As SearchB
Public Shadows Property S() As SearchB
Get
Return _s
End Get
Set(ByVal Value As SearchB)
_s = Value
End Set
End Property
Public Sub New(ByVal name As String)
Mybase.New(name)
_s = New SearchB()
End Sub
End Class
и наконец
Public Class SearchB
Inherits SearchA
Private _superSearch As String
Public Property SuperSearch () As String
Get
Return _superSearch
End Get
Set(ByVal Value As String
_superSearch = Value
End Set
End Property
Public Sub New()
Mybase.New()
_search = "Search using New"
_superSearch = "With more options..."
End Sub
End Class
и вот использование:
Dim oB As New B("hello")
Response.Write(oB.GetSearch())
Я думал, что тени могут работать и печатать «Поиск с использованием нового», но это не так, есть идеи? Я не могу переопределить, поскольку свойство имеет
другой тип возврата для свойства базового класса. Я хочу определить в базовом классе базовый набор функций, которых у меня нет
переопределить в каждом дочернем классе. Или это не имеет особого смысла?
Спасибо за вашу помощь!
Steve