
Envoyé par
ZaaN
aaaarg ca change absoluement rien
Tu dois pouvoir faire ça
CheckFunction<COperation> F1 = (CheckFunction<COperation>)Delegate. CreateDelegate(typeof(CheckFunction<COperation>), method);
Mais ce n'est peut être plus assez abstrait.
J'avais lu qq part que les designers de C# faisaient très gaffe avec la variance et contravariance, parce que ça pouvait très mal supporter le passage d'un framework à l'autre.
i.e. si le fx propose en version 1.0 une méthode System.f(double d), puis rajoute une méthode f(int i) en version 2 :
1 2
| delegate void Truc(double d);
Truc t = System.f; // vaudrait f(double) en v1 et f(int) en v2 si les delegates supportaient la variance |
D'où l'intérêt des contraintes et du mot clé where, à ce que j'ai compris.
Partager