Ich versuche, eine generische Controller-Klasse für generische Ereignisse zu erstellen. Aber diese Ereignisse müssen immer noch auf ihre Klassenvariable zugreifen. Meine Idee ist also, die Base Controller Class mit einer ModelBaseclass-Variablen als _ClassVar zu erstellen, die von allen anderen Klassen abgeleitet wird, von denen Controller-Klassen abgeleitet werden. Aber ich möchte, dass die abgeleiteten Controller-Klassen die _ClassVar mit dem von ihnen benötigten überschreiben.Kann ich mit VB.NET deklarierte Variablen in einer Klasse überschreiben?
Ich möchte dies tun, damit die ControllerBaseClass alle generischen Funktionen haben kann, die alle abgeleiteten Klassen verwenden würden.
Modell:
Public Class ModelBaseClass
Public Overridable Function Foo() As String
Return "Name"
End Function
End Class
Public Class ModelDerivedClass1
Inherits ModelBaseClass
Public Overrides Function Foo() As String
Return "ModelDerivedClass1"
End Function
End Class
Public Class ModelDerivedClass2
Inherits ModelBaseClass
Public Overrides Function Foo() As String
Return "ModelDerivedClass2"
End Function
End Class
Controller:
Public Class ControllerBase
Public Overridable _ClassVar As ModelBaseClass <----
Public Function PrintFoo() As String
Return _ClassVar.Foo()
End Function
End Class
Public Class ControllerDerivedClass1
Inherits ControllerBase
Public Overrides _ClassVar As ModelDerivedClass1 <----
End Class
Public Class ControllerDerivedClass2
Inherits ControllerBase
Public Overrides _ClassVar As ModelDerivedClass2 <----
End Class
-1 Overcomplicates ohne zu merken, dass es keine Notwendigkeit für _ClassVar oder „explicit“ Polymorphismus wie die OP versuchte, zu implementieren. – siride
Dies ist keine übermäßige Komplikation. Seine 'Generics' im einfachsten Format. – decyclone
Ich muss sagen, ich sehe kein Problem mit dem generischen Ansatz. Entweder Cody Grays Antwort oder decyclones würde funktionieren. Codys Ansatz erfordert ein wenig mehr Casting und + MIGHT + bietet einige begrenzte Vorteile, wenn der Controller die Funktionalität in den spezifischen Modellen für jede abgeleitete Klasse verwenden müsste, aber das ist es auch schon. – DarinH