9
votes

Référencer une fonction dans une variable?

dis que j'ai une fonction. Je souhaite ajouter une référence à cette fonction dans une variable.

Donc, je pourrais appeler la fonction 'FOO (Bool Foobar)' à partir d'une variable 'bar', comme si c'était une fonction. PAR EXEMPLE. 'bar (foobar)'.

Comment?


0 commentaires

4 Réponses :


21
votes

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();
   }
}


4 commentaires

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)



0
votes

Vous devez connaître la signature de la fonction et créer un délégué < / a>.

Il existe des délégués prêts à l'emploi pour les fonctions qui renvoient une valeur 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).

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, action et func fait très bien.

mise à jour:

Jetez un coup d'œil à Cette question concernant le choix entre définir vos propres délégués ou non.


0 commentaires

1
votes

2
votes

Utilisation de délégués xxx

à l'aide de action délégué xxx

appelez la fonction; < Pré> xxx


0 commentaires