Übergeben eines Delegaten an eine andere Klasse

7

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

    
Eamonn McEvoy 31.03.2011, 15:57
quelle

3 Antworten

10

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

verwenden %Vor%

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 ).

    
Kieren Johnstone 31.03.2011, 15:59
quelle
10

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.

    
Jon Skeet 31.03.2011 15:59
quelle
4

Deklarieren Sie den Delegierten einmal direkt in Ihrem Namensraum und nicht in einer Klasse.

    
Daniel Hilgarth 31.03.2011 16:00
quelle

Tags und Links