Création d'un type de délégué dans une méthode
Je veux créer un type délégué en C# à l'intérieur d'une méthode dans le but de créer des méthodes Anonymes.
Par Exemple :
public void MyMethod(){
delegate int Sum(int a, int b);
Sum mySumImplementation=delegate (int a, int b) {return a+b;}
Console.WriteLine(mySumImplementation(1,1).ToString());
}
Malheureusement, je ne peut le faire .NET 2.0 et C# 2.0.
source d'informationauteur Nikola Stjelja
Vous devez vous connecter pour publier un commentaire.
Pourquoi voulez-vous créer le type de délégué au sein de la méthode? Quel est le problème avec la déclarer en dehors de la méthode? Fondamentalement, vous ne pouvez pas faire cela, vous ne pouvez pas déclarer une type (tout type de type) à l'intérieur d'une méthode.
Une alternative serait de déclarer tous les Func/Action générique délégués qui sont présents dans .NET 3.5 - ensuite, vous pouvez simplement faire:
Les déclarations sont sur mon C#/.NET page Versions.
Le délégué type doit être défini en dehors de la fonction. Le délégué peut être créé à l'intérieur de la méthode que vous.
serait valide.
La meilleure solution peut être de les imiter .NET3.5, et de créer des génériques délégué des types à l'échelle mondiale, qui peut être utilisé sur tout votre solution, pour éviter d'avoir à constamment redeclare délégué types pour tout:
Alors vous pouvez simplement utiliser un
Func<int, int, int>
délégué dans votre code ci-dessus.Délégués sont compilés pour les classes(une classe qui hérite de System.MulticastDelegate). En C#, vous n'êtes pas autorisé à déclarer une classe à l'intérieur d'une méthode(voir la spécification du langage C#). Ainsi vous ne pouvez pas déclarer un délégué dans une méthode, soit.
Quoi à ce sujet: