J'ai une classe abstraite qui nécessite un délégué pour fonctionner. Je passe le délégué dans le constructeur. Maintenant que j'ai un constructeur non par défaut, j'ai besoin d'appeler les constructeurs de la classe abstraite de la classe concrète ce qui signifie que j'ai besoin d'utiliser MyBase.New (...). J'ai inclus un exemple rapide ci-dessous.Puis-je transmettre un délégué dans un constructeur d'une classe abstraite à partir du constructeur d'un descendant?
Public MustInherit Class BaseClass
Public Delegate Sub WorkMethod()
Private _Work As WorkMethod
Public Sub New(ByVal Work As WorkMethod)
Me._Work = WorkMethod
End Sub
End Class
Public Class ConcreteClass
Public Sub New()
MyBase.New(AddressOf DoSomethingHere)
End Sub
Public Sub DoSomethingHere()
'Do some work here
End Sub
End Class
J'ai essayé de le faire, mais je continue à obtenir l'erreur suivante: « référence implicite à l'objet en construction n'est pas valide quand appeler un autre constructeur ». Puis-je ne pas faire ce que j'essaie de faire ci-dessus? J'ai d'abord eu l'installation du délégué dans sa propre méthode de setter. Mais alors je crée une API trompeuse car elle nécessite un point à une méthode pour fonctionner correctement.
Cela fait trop longtemps que je suis là. C'est comme ça que je devrais le faire. Je ne sais pas pourquoi je n'y ai même pas pensé. Désolé de perdre tout le temps. Quelle erreur de débutant à faire. – uriDium