comment créer une fonction à l'intérieur d'une autre fonction dans c #, est-ce possible?
Est-il possible de créer une fonction dans une autre fonction en C#? Si oui, comment cela peut-il être fait?
source d'informationauteur ratty
Vous devez vous connecter pour publier un commentaire.
Il est très certainement possible.
Vous pouvez créer des délégués, qui sont des fonctions, à l'intérieur d'autres méthodes. Cela fonctionne en C# 2.0:
Et cela fonctionne dans les versions plus récentes avec des lambdas:
Vous pouvez le faire en c# 7(besoin de VS 2017)
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/local-functions
De C# 7.0, vous pouvez le faire:
J'ai pris l'exemple de icimais davantage d'information peut être trouvée ici et ici.
Eilon la réponse est techniquement correcte, en qui vous pouvez utiliser les délégués pour effet de créer une méthode dans une méthode. La question que je voudrais poser est pourquoi vous avez besoin pour créer la fonction en ligne?
C'est un peu une odeur de code pour moi. Oui, la méthode interne est réutilisable pour le reste de votre méthode, mais il suggère qu'il existe un élément du code où le design n'a pas vraiment été pensé pour vous. Les Chances sont, si vous avez besoin d'utiliser un délégué de cette façon, vous auriez probablement être en train de faire quelque chose de relativement petites et répétitives qui seraient mieux servis par une fonction dans la classe, ou même dans une classe utilitaire. Si vous êtes en utilisant .Net 3.5 puis de définir les extensions peuvent également être une alternative utile en fonction de l'utilité du code délégués.
Il serait plus facile de répondre à cette question mieux si vous pouviez nous aider à comprendre pourquoi vous vous sentez le besoin d'écrire votre code dans ce sens.
C'est tellement pas l'odeur de code que X++ a fait dans la manière la plus simple possible...
voir http://msdn.microsoft.com/en-us/library/aa637343.aspx