Должны ли методы в API, которые возвращают Task, заканчиваться Task или Async - PullRequest
7 голосов
/ 02 февраля 2012

Если в API есть синхронный метод T DoSomething<T>();, каково соглашение об именах для соответствующего асинхронного метода, если он возвращает Task<T>?

Task<T> DoSomethingTask<T>();    

или

Task<T> DoSomethingAsync<T>();

или что-то еще?

Ответы [ 2 ]

8 голосов
/ 02 февраля 2012

Если вы говорите о методе async или await, то из MSDN :

По соглашению к именам добавляется суффикс "Async".методов, которые модифицируются модификатором Async или async.

...

Исключения из соглашения могут быть сделаны, когда событие, базовый класс или интерфейсный контракт предлагают другое имя.Например, имена распространенных обработчиков событий, таких как button1_Click, лучше не переименовывать.

7 голосов
/ 02 февраля 2012

Из того, что я видел в C # 5 / .NET 4.5, предпочтительное имя - DoSomethingTaskAsync или DoSomethingAsync

Например, класс WebClient в .NET 4.5имеет методы, подобные DownloadFileTaskAsync, потому что у него уже был метод с именем DownloadFileAsync, поэтому я предполагаю, что использование TaskAsync сверх Async предназначено для обеспечения обратной совместимости.

...