Delegates mit mehreren Return-Werten


Thomas Wölfer
Thomas Wölfer

28. Mai 2004


In C# kann ein Delegate mehrere Methoden haben die im zugeordnet sind. (Die Methoden werden ja mit += zugewiesen, und nicht mit = ).

Angenommen man hat einen delegate der einen Rückgabewert hat:

delegate int GetResult( int paramerter );

Und weiter angenommen, diesem Delegate sind mehrere Methoden zugeordnet. Welchen Rückhabewert erhält man nun, wenn der Delegate zurückkehrt?

Antwort: Man bekommt den Rückgabewert der zuletzt aufgerufenen Methode des Delegate. Wenn das nicht ausreicht, kann man mit GetInvocationList() alle zugehörigen Methoden ermitteln und diese einzeln aufrufen. Das muss man dann aber manuell machen.

Dank an Eric Gunnerson.