本人菜鸟,刚学C#,看到这段代码我糊涂了public TcpServer(IPEndPoint endPoint)
        {
            _endPoint = endPoint;
            this.ClientAccepted += (sender, e) =>
                {
                    //IPEndPoint ep = (IPEndPoint)e.TcpClient.Client.RemoteEndPoint;
                    Logger.Info("TcpServer: 客户端连入 {0}。", e.TcpClient.Client.RemoteEndPoint);
                };            this.Error += (sender, e) =>
            {
                Logger.Error("TcpServer: 发生错误。");
            };
            this.Started += (sender, e) =>
            {
                Logger.Info("TcpServer: 已启动。");
            };
            this.Starting += (sender, e) =>
            {
                Logger.Info("TcpServer: 正在启动,侦听地址:{0}。", this.IPAddress);
            };
            this.Stopped += (sender, e) =>
            {
                Logger.Info("TcpServer: 已停止。");
            };
            this.Stopping += (sender, e) =>
            {
                Logger.Info("TcpServer: 正在停止。");
            };        }请问类似于下面格式的语句怎么理解?
this.ClientAccepted += (sender, e) =>
{
     //IPEndPoint ep = (IPEndPoint)e.TcpClient.Client.RemoteEndPoint;
      Logger.Info("TcpServer: 客户端连入 {0}。", e.TcpClient.Client.RemoteEndPoint);
};

解决方案 »

  1.   

    事件处理函数,使用了Lambda表达式来写。
    this.ClientAccepted += (sender, e) =>
    {
      //IPEndPoint ep = (IPEndPoint)e.TcpClient.Client.RemoteEndPoint;
      Logger.Info("TcpServer: 客户端连入 {0}。", e.TcpClient.Client.RemoteEndPoint);
    };
    相当于
    this.ClientAccepted += XXX_ClientAccepted;...void XXX_ClientAccepted(object sender, EventArgs e)
    {
      //IPEndPoint ep = (IPEndPoint)e.TcpClient.Client.RemoteEndPoint;
      Logger.Info("TcpServer: 客户端连入 {0}。", e.TcpClient.Client.RemoteEndPoint);
    };
      

  2.   

    cao哥、我也想问下委托该怎么用才合适啊、有没有好的例子啊
      

  3.   

    任何C#的书,以及MSDN都有讲解委托、事件的。自己看书学习下,很基本的东西。