Peut une méthode C# de retour d'une méthode?
Peut une méthode en C# de retour d'une méthode?
Une méthode de retour d'un expression lambda par exemple, mais je ne sais pas quel genre de type de paramètre que je pourrais donner à une telle méthode, parce qu'une méthode n'est pas Type
. Tel un retour de la méthode pourrait être attribué à certains délégué.
Considérer ce concept comme un exemple:
public <unknown type> QuadraticFunctionMaker(float a , float b , float c)
{
return (x) => { return a * x * x + b * x + c; };
}
delegate float Function(float x);
Function QuadraticFunction = QuadraticFunctionMaker(1f,4f,3f);
- Vous avez déjà déclaré le nécessaire type de délégué. Quel est exactement votre question ici?
Vous devez vous connecter pour publier un commentaire.
Les Types que vous recherchez sont
Action<>
ouFunc<>
.Les paramètres génériques sur les deux types de déterminer le type de signature de la méthode. Si votre méthode n'a pas de valeur de retour l'utilisation
Action
. Si elle a une valeur de retour l'utilisationFunc
laquelle le dernier paramètre générique est le type de retour.Par exemple:
Le type de retour est
Func<float, float>
.<unknown type>
=Function
. C'est,Est ce que vous cherchez, puisque vous avez déjà déclaré le délégué
Function
de match. Sinon, vous n'avez pas besoin de déclarer un délégué à toutes et peut utiliserFunc<float, Float>
comme remarqué par d'autres. C'est exactement l'équivalent. En fait,Func<T, T>
est déclaré exactement de la même manière que votre déléguéFunction
sauf qu'il est générique.Func<>
etAction<>
. Je crois que MS s'éloigne un peu de l'avoir personnalisé les délégués de tous sur la place.Vos expressions lambda serait prendre un
float
comme un paramètre (je crois), et ensuite de retour à unfloat
ainsi. Dans .NET, on peut représenter cela par le typeFunc<float, float>
.En règle générale, si vous faites affaire avec les lambdas prennent plus de paramètres, vous pouvez utiliser
Func<Type1, Type2, Type3, ..., ReturnType>
, avec jusqu'à huit paramètres.Je pense que vous avez besoin de l'Action<T> délégué définition. J'espère que cet article Action<T> Délégué peut vous aider.
Vous pouvez utiliser le
dynamic
mot-clé. Voir dynamique (Référence C#).Je pense, un Tuple serait approprié à votre situation. Pour plus d'informations, jetez un oeil ici http://sankarsan.wordpress.com/2009/11/29/tuple-in-c-4-0/.