ich habe folgendes Problem.
Ich habe eine Erweiterung eines vorhandenen Framework-Controls geschrieben, nennen wir es "ControlEx" und in diversen Programmen verwendet.
Jetzt habe ich diese Erweiterung auf generisch umgestellt, also "Generic.ControlEx(Of T)".
Um aber nicht alle meine Programme auf einmal auf die generische Variante umstellen zu müssen, habe ich ein neues "ControlEx" erstellt, was von "Generic.ControlEx(Of Object)" erbt.
Da in der generischen Variante einige Unterklassen (z.B. Items und EventArgs) existieren, die ebenfalls generisch sind, und ich das Einfügen von "(Of Object)" in allen meinen Programmen, die diese Unterklassen verwenden, umgehen will, habe ich von diesen generischen Unterklassen ebenfalls allgemeine Versionen erstellt und überschreibe in meiner allgemeinen "ControlEx" die Funktionen und Prozeduren, die generische Typen nach außen geben, durch nicht generische Kopien.
Soweit so gut.
Jetzt habe ich allerdings in meiner generischen Variante "Generic.ControlEx(Of T)" auch einen Delegate erstellt
Public Delegate Function GetItemPropertiesFunction(Of T)(ByVal item As T) As ItemProperties
Public Delegate Function GetItemPropertiesFunction(ByVal item As Object) As ItemProperties
Dummerweise funktioniert dann aber der folgende Code in der allgemeinen Variante "ControlEx" nicht, weil man die beiden Delegaten nicht ineinander umwandeln kann.
Public Shadows Property GetItemProperties() As GetItemPropertiesFunction Get Return MyBase.GetItemProperties '<-- (Of Object) End Get Set(ByVal value As GetItemPropertiesFunction) MyBase.GetItemProperties = value End Set End Property
Public Delegate Function GetItemPropertiesFunction() As _ Generic.GetItemPropertiesFunction(Of Object)
Hat jemand vielleicht eine Lösung für dieses Problem?
Comment