考虑以下接口和实现。
根据Microsoft 命名规范,接口方法应该命名为
引用如下:
请注意,我不是寻求有意见的答案。请把它看作是多项选择题。 :)
interface IService
{
Task<string> GetAnswer(string question);
}
class SomeService : IService
{
async Task<string> IService.GetAnswer(string question)
{
... code using awaits ...
}
}
class AnotherService : IService
{
Task<string> IService.GetAnswer(string question)
{
return Task.FromResult("I have no idea.");
}
}
根据Microsoft 命名规范,接口方法应该命名为
GetAnswer
还是GetAnswerAsync
?引用如下:
问题在于第一种实现使用了按照惯例,对于具有 Async 或 async 修饰符的方法,将“Async”附加到名称。
async
修饰符,表示它应该接收“Async”方法名称后缀,但第二种实现没有使用async
修饰符,表示它不应该接收“Async”方法名称后缀。接口强制两个实现的方法名称相同,因此我被迫违反其中一个类的命名约定。请注意,我不是寻求有意见的答案。请把它看作是多项选择题。 :)
- 你应该使用“Async”后缀,因为命名规范是这样规定的。(参考资料。)
- 你不应该使用“Async”后缀,因为命名规范是这样规定的。(参考资料。)
- 命名规范没有规定。(需要由精通命名规范的人提供信息。)
Task
的部分,或者在命名约定中根本没有提到。这不是基于个人意见的。 - Timothy Shields