J'écris une méthode pilotée par table en C#. J'ai un dictionnaire de cette signature:Problème de méthode pilotée par table
Diction<Func<string, bool>, Func<string>>
Il prendra une chaîne comme paramètre et me permettent d'exécuter une méthode qui retourne un bool sur la chaîne (par exemple String.length> 5). La valeur correspond aux méthodes qui retournent une chaîne.
Mais la méthode qui le fait prend une fonction en tant que paramètre. Je veux changer cela pour qu'il prenne une chaîne mais ensuite il regarde la longueur de la chaîne et obtient la bonne valeur du dictionnaire.
Quelque chose comme ceci:
dict[s.Length]; Or dict[s]; // Where s is a string
Si elle est supérieure à 5, il obtient le Func qui exécute la méthode de la longueur> 5, sinon il obtient une autre fonct. Je veux éviter d'utiliser if/else car c'est un exercice pour sortir de cette habitude.
Je pourrais utiliser?: Mais ce n'est que pour deux conditions. La chose principale est que ceci est pour une API et je veux que l'utilisateur de l'API passe juste dans la chaîne en tant que paramètre, puis regarde la longueur et obtienne la bonne fonction du dictionnaire.
Comment dois-je procéder à ce sujet? Merci
Vous voulez exécuter une fonction (retourner une chaîne et ne prend aucun argument) sur la base sur la longueur d'une chaîne? Ou basé sur un prédicat évalué pour la chaîne? –