简体   繁体   English

回调和新的AsyncCallback(Callback)有什么不同?

[英]What is different Callback vs new AsyncCallback(Callback)?

For AsyncSocket 对于AsyncSocket

// accept
...
listener.BeginAccept( new AsyncCallback(AcceptCallback), listener);
// listener.BeginAccept( AcceptCallback, listener);
...

public void AcceptCallback(IAsyncResult ar)
{
...
}

// recieve
...
socket.BeginReceive(buffer, offset, length, 0, new AsyncCallback(ReadCallback), asyncSocket);
// socket.BeginReceive(buffer, offset, length, 0, ReadCallback, asyncSocket);
...

public void ReadCallback(IAsyncResult ar)
{
...
}

We can use just Callback instead new AsyncCallback(Callback) 我们可以只使用Callback代替new AsyncCallback(Callback)

What is different just Callback vs new AsyncCallback(Callback)? 回调和新的AsyncCallback(Callback)有什么不同?

What is different just Callback vs new AsyncCallback(Callback)? 回调和新的AsyncCallback(Callback)有什么不同?

Its called Delegate Inference . 它称为委托推理 The former lets the compiler infer the delegate type, the latter explicitly states it. 前者让编译器推断委托类型,后者明确声明它。

They're the same. 他们是一样的。 The "new" keyword was needed in older versions of the compiler. 在较早版本的编译器中,需要“ new”关键字。 The newer version of the compiler can infer the delegate. 较新版本的编译器可以推断委托。 The same code is generated either way. 两种方式都会生成相同的代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM