12
votes

Délégué par défaut en C #

Quel est le nom du délégué par défaut en C # qui ne prend aucun paramètre et renvoie le vide? Je me souviens qu'il existait un tel délégué mais je ne me souviens pas de son nom.


3 commentaires

Quel est le nom de ce moteur de recherche que vous pouvez utiliser pour trouver des trucs avec? ;) Google.se/Search?q= C% 23 + délégué + no + paramètres + retours + annulement


@Guffa: Ce qui arrive maintenant pour rappeler cette question ...


@DAVIDG: Cela se produit généralement après seulement quelques minutes, qu'il y ait des réponses utiles ou non. Juste parce que quelque chose apparaît dans un résultat de Google ne garantit aucune garantie qu'il y a des informations utiles là-bas ...


5 Réponses :




13
votes

Avant .NET 3.5, il était assez courant de déclarer le vôtre. Maintenant, action code> est un bon candidat, mais threadstart code> était couramment utilisé (assez confusement), ou méthodalvoker code> si em> si em> vous étaient déjà référencés des winforms.

Un test rapide (Remarque, exécutant dans .NET 4.0, en utilisant uniquement certaines bibliothèques - donc pas exhaustive): p>

System.Action, mscorlib...
System.CrossAppDomainDelegate, mscorlib...
System.IO.Pipes.PipeStreamImpersonationWorker, System.Core...
System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack, System.Core...
System.Net.UnlockConnectionDelegate, System...
System.Runtime.Remoting.Contexts.CrossContextDelegate, mscorlib...
System.Threading.ThreadStart, mscorlib...
System.Windows.Forms.AxHost+AboutBoxDelegate, System.Windows.Forms...
System.Windows.Forms.MethodInvoker, System.Windows.Forms...


1 commentaires

Je vote pour alterner entre Axhost.aboutboxDelegate et lambdacompiler.writeback. Je vais commencer à déchirer les utilisations de "action" de mon code immédiatement.



3
votes

Je peux interpréter votre question différemment à tous les autres, mais:

Si vous envisagez du délégué à utiliser pour la manipulation des événements, la convention consiste à utiliser EventHandler . Ce délégué ne prend pas de paramètres «non», mais il est essentiellement moins d'informations.


0 commentaires

2
votes

in .NET 2.0 Le MethodInvoker Le délégué est recommandé. C'est le plus générique. Comme son nom suggère, il invoque une méthode. D'autres pourraient avoir les mêmes propriétés que vous avez décrites, mais ils ont un nom différent suggérant d'autres usages ou des usages très spécifiques dans des zones spécifiques.


0 commentaires