Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在同一个lambda表达式上传递lambda表达式作为回调函数_C#_Lambda_Delegates - Fatal编程技术网

C# 在同一个lambda表达式上传递lambda表达式作为回调函数

C# 在同一个lambda表达式上传递lambda表达式作为回调函数,c#,lambda,delegates,C#,Lambda,Delegates,这是我的密码 _serverSocket.BeginAccept(AcceptCallback, null); private static void AcceptCallback(IAsyncResult AR) { ... _serverSocket.BeginAccept(AcceptCallback, null); } 我想把它缩短成一个lambda表达式 将来 我在想,如果有一种方法可以将一个lambda表达式作为委托方法传递给事件调用,我要说的是如何

这是我的密码

        _serverSocket.BeginAccept(AcceptCallback, null);

private static void AcceptCallback(IAsyncResult AR)
{
    ...
   _serverSocket.BeginAccept(AcceptCallback, null);
}
我想把它缩短成一个lambda表达式 将来

我在想,如果有一种方法可以将一个lambda表达式作为委托方法传递给事件调用,我要说的是如何从同一个表达式内部调用同一个lambda表达式的一般目的,有点像递归,这可能吗

在这种特殊情况下,有没有办法避免使用一个循环来冻结应用程序,并仍然使用lambda作为accept回调,即仍然从lambda表达式内部调用begin accept,您可以尝试以下方法:

AsyncCallback asyncCallback = null;
asyncCallback = ar =>
{
    _serverSocket.BeginAccept(asyncCallback, null);
};
_serverSocket.BeginAccept(asyncCallback, null);

这里有一个等待的插座,没有任何意义。它看起来是递归的,委托调用委托。。。
AsyncCallback asyncCallback = null;
asyncCallback = ar =>
{
    _serverSocket.BeginAccept(asyncCallback, null);
};
_serverSocket.BeginAccept(asyncCallback, null);