具有异步签名与无签名的任务

时间:2018-11-15 08:25:31

标签: c# naming-conventions

我对任务一无所知。因此,请向我解释这是带签名的任务与无签名的任务之间的主要区别。 例子

dateOfBirth: Date,
age: Number

如果我在功能结束时不包括异步功能,会有什么区别吗?

2 个答案:

答案 0 :(得分:1)

是的,当您关心代码设计时就很重要,例如:

public interface IMyService
{
    Task<int> GetWeightAsync();
    int GetWeight();
}

在这种情况下,此接口的用户同时支持:异步版本和非异步版本,因此他们可以决定要选择的路径。

C#被设计为多态的,但是在异步的情况下,这只是伪造它的方法。编译器仍然会抱怨签名是否相同,除了返回值,所以人们决定在最后添加后缀“ Async”。

答案 1 :(得分:1)

无论是否添加“异步”后缀,关于功能的行为都没关系。

确实与客户对您的API的看法有关。

此命名约定被广泛采用,因此您使用它会对自己和其他人有所帮助。

顺便说一句: 如果该API已包含名为“ xxxAsync”的旧版异步功能(非TAP),则建议改用“ xxxTaskAsync”。