应该返回Task的API中的方法是否以Task或Async结尾

时间:2012-02-02 18:05:43

标签: c# .net asynchronous naming-conventions

如果API具有同步方法T DoSomething<T>();,如果返回Task<T>,相应的异步方法的命名约定是什么?

Task<T> DoSomethingTask<T>();    

Task<T> DoSomethingAsync<T>();

或其他什么?

2 个答案:

答案 0 :(得分:8)

如果您正在讨论asyncawait方法,请从MSDN开始:

  

按照惯例,后缀“Async”被添加到方法的名称中   由Async或async修饰符修改的。

     

...

     

可以在事件,基类,   或接口合同提出了不同的名称。例如,   常见事件处理程序的名称,例如button1_Click,最好不要   重命名。

答案 1 :(得分:7)

从我在C#5 / .NET 4.5中看到的,首选名称为DoSomethingTaskAsyncDoSomethingAsync

例如,.NET 4.5中的WebClient类有DownloadFileTaskAsync之类的方法,因为它已经有一个名为DownloadFileAsync的方法,所以我假设使用了TaskAsync超过Async是为了保持向后兼容性。