Sur Programmation asynchrone avec async et await (C#) Microsoft propose les conseils suivants :
Convention de dénomination
Par convention, vous ajoutez "Async" au nom des méthodes qui ont une fonction de type asynchrone modificateur.
Vous pouvez ignorer la convention lorsqu'un événement, une classe de base ou une interface suggère un nom différent. Par exemple, vous ne devez pas renommer les gestionnaires d'événements courants, tels que Button1_Click
.
Je trouve cette orientation incomplète et insatisfaisante. Cela signifie-t-il qu'en l'absence de la async
cette méthode doit être nommée Connect
au lieu de ConnectAsync
?
public Task<bool> ConnectAsync()
{
return ConnectAsyncInternal();
}
Je ne le pense pas. Comme indiqué dans le réponse concise par @Servy et les plus réponse détaillée par @Luke Puplett je crois qu'il est approprié et même attendu que cette méthode debe être nommé ConnectAsync
(parce qu'il renvoie un awaitable). A l'appui de cette affirmation, @John Skeet en cette réponse à une autre question ajoute Async
au nom de la méthode, indépendamment de la présence de l'option async
modificateur.
Enfin, le une autre question considère ce commentaire par @Damien_The_Unbeliever :
async/await
son mise en œuvre les détails de vos méthodes. Il importe que votre méthode soit déclarée ou non async Task Method()
ou juste Task Method()
dans la mesure où votre appelants sont concernés. (En En fait, vous êtes libre de passer de l'un à l'autre à un moment ultérieur de votre vie. temps sans que cela soit considéré comme un changement de rupture).
De cela, je déduis que c'est la la nature asynchrone de la méthode qui dicte comment il doit être nommé. L'utilisateur de la méthode ne saura même pas si la méthode async
est utilisé dans son implémentation (sans le code source C# ou CIL).