Comment puis-je stocker des délégués (nommés, anonymes, lambda) dans une liste générique? Fondamentalement, j'essaye de construire un dictionnaire de délégué d'où je peux accéder à un délégué stocké en utilisant une clé et l'exécuter et retourner la valeur sur demande. Est-il possible de faire en C# 4? Une idée pour l'accomplir? Note: Une liste hétérogène est préférable lorsque je peux stocker n'importe quel type de délégués.Comment stocker des délégués dans une liste
Répondre
Est-ce que System.Collections.Generic.Dictionary<string, System.Delegate>
ne suffit pas?
de cette façon je ne peux pas stocker les délégués anonymes ou lambdas. –
@Anindya Chatterjee: Oui, vous pouvez: 'dic.Add (" action ", nouvelle Action (() => Console.WriteLine (" action appelée! ")));' – Timwi
Ya, merci de me le rappeler, je totalement oublié à propos de --new Action (() => Console.WriteLine ("action appelée!")) - –
Dictionary<string, Func<int, int>> fnDict = new Dictionary<string, Func<int, int>>();
Func<int, int> fn = (a) => a + 1;
fnDict.Add("1", fn);
var re = fnDict["1"](5);
Je suis à la recherche d'une solution plus générique où il n'y a pas de contraintes pour les délégués. –
Eh bien, voici un exemple simple:
class Program
{
public delegate double MethodDelegate(double a);
static void Main()
{
var delList = new List<MethodDelegate> {Foo, FooBar};
Console.WriteLine(delList[0](12.34));
Console.WriteLine(delList[1](16.34));
Console.ReadLine();
}
private static double Foo(double a)
{
return Math.Round(a);
}
private static double FooBar(double a)
{
return Math.Round(a);
}
}
Je ne cherche pas ce genre de solution. La solution prend seulement un type spécial de délégué nommé, pas d'autres. –
public delegate void DoSomething();
static void Main(string[] args)
{
List<DoSomething> lstOfDelegate = new List<DoSomething>();
int iCnt = 0;
while (iCnt < 10)
{
lstOfDelegate.Add(delegate { Console.WriteLine(iCnt); });
iCnt++;
}
foreach (var item in lstOfDelegate)
{
item.Invoke();
}
Console.ReadLine();
}
- 1. Liste des délégués et invocation
- 2. Liste hétérogène de délégués
- 3. Comment stocker des méthodes Java dans une liste dans Clojure
- 4. Comment stocker des tableaux dans une liste STL?
- 5. Sérialiser une liste de délégués anonymes
- 6. comment stocker une liste d'objets en session
- 7. Comment stocker les propriétés dans une liste dans Ant?
- 8. Comment stocker une liste de fichiers dans un fichier texte?
- 9. Comment puis-je stocker le contrôle actuel dans une liste?
- 10. Délégués délégués
- 11. base.Invoke avec des délégués
- 12. Comment stocker des données modifiées dans une base de données?
- 13. Composer des délégués (piège fonctionnel)
- 14. Comment stocker des lignes de texte dans une liste de propriétés sur l'iPhone?
- 15. Optimisation des délégués jQuery
- 16. Comment diviser une liste en groupes et stocker les indices?
- 17. Comment impliquer la conversion des délégués?
- 18. délégués avec des expressions lambda dans F #
- 19. .NET Remoting - Sérialisation des délégués
- 20. Meilleure pratique des délégués d'application
- 21. Comment puis-je stocker une liste d'objets personnalisés?
- 22. Comment puis-je stocker une liste de références en Perl?
- 23. Comment stocker et accéder à une liste dans une variable dans Prolog?
- 24. Comment gérer plusieurs délégués
- 25. jQuery délégués avec des plugins
- 26. Stocker la requête Telnet entrante dans une liste en utilisant
- 27. Comment stocker des coordonnées dans une base de données
- 28. Comment colorer des lignes dans une liste?
- 29. Comment échanger des éléments dans une liste?
- 30. Multithreading et exécution des délégués
Dictionnaire? –
Remarque hétérogène est une mauvaise idée, comment allez-vous savoir quels paramètres vous devez passer le délégué –