jetzt habe ich die folgende bin der Hoffnung, ist möglich, obwohl ich nicht ganz sicher bin, es ist so hier geht ...Eine weitere OOP Frage in Asp.net
unten ist das Setup von dem, was ich hoffe, ist möglich (in VB.net, fühlen sie sich frei in C# zu beantworten und ich sollte es arbeiten können out):
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
und
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
und
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
und schließlich
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
und hier ist die Nutzung:
Dim oB As New B("hello")
Response.Write(oB.GetSearch())
Ich dachte, dass Schatten funktionieren könnte und print „Suche Neuer mit“ aber es funktioniert nicht, irgendwelche Ideen? Ich kann nicht überschreiben, da die Eigenschaft einen anderen Rückgabetyp als die Basisklasseneigenschaft hat. Ich möchte innerhalb einer Basisklasse einen Kernsatz von Funktionen definieren, die ich innerhalb einer Kindklasse nicht überschreiben muss. Oder macht das nicht viel Sinn?
Danke für Ihre Hilfe!
Steve
EDIT: Das Set in der S-Eigenschaft in der Klasse B 'Value Als SEARCHB' –
@stibstibstib sagen sollte: Sie Ihre Frage bearbeiten kann. Über diesen Kommentaren befindet sich ein kleiner Link zum Bearbeiten. – Welbog
ah Ich sehe, das ist ziemlich klein! Ich werde es jetzt benutzen, danke. –