Imaginez que vous voulez écrire une méthode similaire à celle-ci. Elle enveloppe une fonction renvoyant une ValueTask
avec un code de surveillance de performances trivial :
static async Task Measure(Func> body)
{
Console.WriteLine($"Démarrage du test de performances");
var sw = Stopwatch.StartNew();
await body();
sw.Stop();
Console.WriteLine(sw.Elapsed);
}
Ma question est : est-il possible d'écrire cette fonction une seule fois de manière à ce qu'elle puisse recevoir à la fois Func>
et Func>
?
Vous pourriez bien sûr simplement dupliquer le code et changer uniquement le type du paramètre.
static async Task Measure(Func> body) { ... }
L'implémentation serait absolument identique. Je me demande s'il est possible d'éviter ce genre de duplication de code lorsqu'il faut gérer ValueTask
et Task
. Jusqu'à présent, je n'ai pas réussi à trouver une bonne solution. Des idées ?