Lambda\Anonyme de la Fonction en tant que paramètre
Je suis très novice en C#. Tout simplement jouer avec elle. Pas de but réel.
void makeOutput( int _param)
{
Console.WriteLine( _param.ToString());
}
//...
//Somewhere in a code
{
makeOutput( /* some not c# code for an example for what do I want */ function : int () { return 0; } );
}
Est-il possible l'utilisation d'une fonction anonyme (c'est retourner le résultat)?
Je ne veux pas utiliser les délégués tels que
//Somewhere in a code
{
Func<int> x = () => { return 0; };
makeOutput( x())
}
Aussi je NE veux PAS changer de méthode type de paramètre comme
void makeOutput( Func<int> _param)
{
}
Qui est très commun de décision.
Tout est bien. J'ai juste compris que je voulais des choses impossibles. Je voulais déclarer fonction anonyme et de l'exécuter au même endroit. Remarque: en DIRECT de la déclaration et appel DIRECT sans générique wrapper.
//flash-like (as3) code ///DOES NOT COMPILE
makeOutput( (function : int(){ return 0; })() );
Je ne comprends pas la question. Pouvez-vous reformuler ou d'utiliser certains psudocode?
Pourquoi ne pas vous souhaitez modifier le type de paramètre?
Parce qu'il pourrait vouloir utiliser juste un
+1 merci beaucoup pour cette question
Pourquoi ne pas vous souhaitez modifier le type de paramètre?
Parce qu'il pourrait vouloir utiliser juste un
int
parfois?+1 merci beaucoup pour cette question
OriginalL'auteur Focker | 2011-07-28
Vous devez vous connecter pour publier un commentaire.
Oui.
Il est appelé un délégué.
Délégués sont (plus ou moins) type normal; vous pouvez les passer à fonctionne comme n'importe quel autre type.
Votre modifiered question n'a pas de sens.
C# est de type sécurisé.
Si la méthode ne veut pas d'une fonction comme paramètre, vous ne pouvez pas lui donner une méthode en tant que paramètre.
OriginalL'auteur SLaks
Cela peut faire l'affaire!
C'est les simples manière : la surcharge!
OriginalL'auteur Vercas
J'ai eu le même problème et un ami m'a montré le chemin:
Espère que cela aidera
OriginalL'auteur pen2