对于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)
{
...
}
我们可以使用Callback而不是新的AsyncCallback(Callback)
Callback与新的AsyncCallback(Callback)有何不同?
答案 0 :(得分:2)
Callback与新的AsyncCallback(Callback)有何不同?
它被称为Delegate Inference。前者允许编译器推断委托类型,后者明确说明它。
答案 1 :(得分:2)
他们是一样的。 "新"旧版本的编译器需要关键字。较新版本的编译器可以推断出委托。无论哪种方式生成相同的代码。