In meiner Hauptklasse 'A' habe ich eine Funktion deklariert und delegiere, um diese Funktion aufzurufen. Ich möchte meinen Delegaten einer anderen Klasse 'B' übergeben, aber wie weiß die Klasse B, welcher Typ der Delegat ist?
Klasse A
%Vor%Klasse B
%Vor%Danke,
Eamonn
Wenn Sie den Delegaten in Klasse A deklarieren, deklarieren Sie ihn als Untertyp der Klasse A. Er hat also beispielsweise den Typ ClassA.SendInfo
. In Klasse B könnten Sie
Alternativ deklarieren Sie den Delegaten außerhalb des Codes für die Klasse A - dann ist es einfach ein anderer Typ, auf den Sie mit dem Namen verweisen können ( SendInfo
).
Warum deklarieren Sie zwei separate Delegattypen mit derselben Signatur? Deklarieren Sie einen einzelnen Delegattyp (wenn Sie wirklich müssen - verwenden Sie die Familien Func
und Action
wo möglich) außerhalb jeder anderen Klasse und verwenden Sie diese überall.
Sie müssen beachten, dass wenn Sie schreiben:
%Vor%deklariert tatsächlich einen -Typ - und Sie können diesen Typ direkt in einem Namespace deklarieren; es muss nicht das Mitglied eines anderen Typs sein.
Deklarieren Sie den Delegierten einmal direkt in Ihrem Namensraum und nicht in einer Klasse.