日期:2014-05-19  浏览次数:20725 次

请问下,这两个写法有什么区别?
Socket   Listener;
void   ServerReceived(IAsyncResult   ar)
{...}

...
写法1:
Listener.BeginAccept(new   AsyncCallback(this.ServerReceived),   Listener);
写法2:
Listener.BeginAccept(ServerReceived,   Listener);


------解决方案--------------------
哦,说不清楚了.
------解决方案--------------------
new AsyncCallback(this.ServerReceived),异步操作函数执行完毕后的回调
Socket.BeginAccept 方法 (Socket, Int32, AsyncCallback, Object) 开始异步操作以接受从指定套接字传入的连接尝试并接收客户端应用程序发送的第一个数据块。
AsyncCallback 委托
public delegate void AsyncCallback (
IAsyncResult ar
)


------解决方案--------------------
一样的,第二种是简洁写法,在.net2.0下编译器会自动生成代码,LZ可以用ildasm.exe反编译看看
------解决方案--------------------
第二种是由编译器帮你生成第一种