dis que j'ai une fonction. Je souhaite ajouter une référence à cette fonction dans une variable. P>
Donc, je pourrais appeler la fonction 'FOO (Bool Foobar)' à partir d'une variable 'bar', comme si c'était une fonction. PAR EXEMPLE. 'bar (foobar)'. P>
Comment? P>
4 Réponses :
On dirait que vous souhaitez enregistrer un Func code> à une variable pour une utilisation ultérieure. Jetez un coup d'œil aux exemples ici :
using System;
public class GenericFunc
{
public static void Main()
{
// Instantiate delegate to reference UppercaseString method
Func<string, string> convertMethod = UppercaseString;
string name = "Dakota";
// Use delegate instance to call UppercaseString method
Console.WriteLine(convertMethod(name));
}
private static string UppercaseString(string inputString)
{
return inputString.ToUpper();
}
}
Je suppose que je pourrais faire ça. Mais alors je serais verrouillé pour avoir un maximum de 4 paramètres, si je devais utiliser la méthode Func <>, qui serait préférable. Je pourrais probablement utiliser cela, mais ce serait bien si je pouvais me contourner la limite.
@Ruirize: intéressant, je n'ai jamais rencontré cette limite avant donc je suppose que je ne l'ai jamais su. On dirait que cela a été couvert ici avant, cependant, alors quelque chose que nous devrions jeter un coup d'œil à: Stackoverflow.com/ Questions / 3582866 / Func-For-5-Arguments
Cela semble super! Bien que, si je dois en faire beaucoup pour chaque unité, je vais probablement utiliser mon interpréteur Lua.
Si l'hypothèse ici est que, à .NET 3.5, vous êtes limité à FUNC <... T4, TRESULT>, puis installez des extensions réactives pour obtenir des définitions jusqu'à Func <... T16, Tresult> (qui est ce que. Aussi des offres)
Vous devez connaître la signature de la fonction et créer un délégué < / a>. p>
Il existe des délégués prêts à l'emploi pour les fonctions qui renvoient une valeur a > et pour des fonctions qui ont un type de retour annulé . Les deux liens précédents font partie des types génériques pouvant prendre jusqu'à 15 arguments de type (peut ainsi servir à des fonctions qui prennent de nombreux arguments). P>
Si vous avez l'intention d'utiliser des références à des fonctions dans une portée supérieure à une portée locale, vous pouvez envisager de définir vos propres délégués personnalisés. Mais la plupart du temps, Jetez un coup d'œil à Cette question concernant le choix entre définir vos propres délégués ou non. P> action code> et
func code> fait très bien. P>
Utilisation de délégués à l'aide de appelez la fonction; p> < Pré> xxx pré> p> action code> délégué p>