C# 使用旧的异步模式结束方法名时,是否会出现错误的做法;异步;?

C# 使用旧的异步模式结束方法名时,是否会出现错误的做法;异步;?,c#,.net,asynchronous,C#,.net,Asynchronous,在最近的版本中,建议使用“Async”结束方法名称,例如“” 现在让我们假设我使用的是,即带有Begin/End方法对和IAsyncResult的方法。我有一个方法包装对该方法的调用,例如: public void SendAsync(byte[] data) { this.stream.BeginWrite(...); } 还假设传递给BeginWrite的EndWrite方法对于所有数据都是相同的,即它将是同一类中的方法 在这种情况下,将此方法命名为sendaync()是否错误,因

在最近的版本中,建议使用“Async”结束方法名称,例如“”

现在让我们假设我使用的是,即带有Begin/End方法对和
IAsyncResult
的方法。我有一个方法包装对该方法的调用,例如:

public void SendAsync(byte[] data)
{
    this.stream.BeginWrite(...);
}
还假设传递给
BeginWrite
EndWrite
方法对于所有数据都是相同的,即它将是同一类中的方法


在这种情况下,将此方法命名为
sendaync()
是否错误,因为它可能与新的异步模式混淆?

随着新框架/模式/技术的发现/创建/实现,新规则或建议出现

命名约定只是创建标准的一种方式,以使开发人员之间的代码更加统一;这并不意味着你不能使用你最喜欢的或对你更有用的(除非你是一家执行惯例的公司)

从我的观点来看,我不会在现在的遗留代码中采用新的约定

另外,我总是喜欢使用与我正在使用的框架类似的命名约定,以便与我一起工作的其他开发人员更容易使用。

检查这个(有点旧,但仍然很好):

我将遵循APM(异步模式模块),并将我的方法命名为BeginXXX和EndXXX

另外,通过返回IAsyncResult确保方法正确实现模式,而不是在从该方法返回时无效


APM:

我质疑返回类型
void
这里,您正在创建fire and forget方法?您如何知道它何时完成写入操作?对我来说似乎是一个灾难。命名可能是主观的。但是创建无效的异步方法是一种不好的做法:为了与.Net framework约定保持一致,请使用
BeginXXX
EndXXX
命名。。另外,您的方法不符合
APM
它应该返回
IAsyncResult
这只是一个示例来说明这一点。例如,您可以添加一个操作参数,该参数将在结束时运行。。。我认为这里的问题是,方法上的名字对象Async意味着当它启动的操作完成时,它有某种异步通知机制。对我来说,这意味着为了将方法命名为Async,必须有某种回调机制。然而,我会说不,不要这样命名。提供标准IAsyncResult参数并创建BeginXXX和EndXXX,或者使用Task并将其称为Async,或者为不同的样式找到自己的命名约定。但这只是一种观点+正如我在假设中所说的,有一个方法EndWrite()已经使用了IAsyncResult,但是从使用这个类/方法的代码中看不到它。