当前位置:编程学习 > C#/ASP.NET >>

代码匿名委托?求分析。

        public void SendMessage(string message)
        {
            MethodInvoker method = delegate { SendMessageHandler(message); };
            if (InvokeRequired)
                BeginInvoke(method);
            else
                method.Invoke();
        }

跟委托书上的格式和方法不同啊~本程序中未声明委托。不知道怎么理解。请达人分析下。谢谢 --------------------编程问答-------------------- 要定义这个吧
public delegate void SendMessageHandler(string message); --------------------编程问答-------------------- 程序中没定义这个。但是可以正常运行。不知道是不是别的意思。 --------------------编程问答-------------------- 你在“SendMessageHandler” 上右键-》转到定义,应该可以找到类似下面的定义吧
public void SendMessageHandler(string message) { }  --------------------编程问答-------------------- 这个可以找到 --------------------编程问答--------------------
MethodInvoker method = delegate { SendMessageHandler(message); };
 

 这个就是一个委托的声明 --------------------编程问答--------------------
引用 1 楼 gxingmin 的回复:
要定义这个吧
public delegate void SendMessageHandler(string message);

MethodInvoker才是委托,而SendMessageHandler是具体方法,不是委托。
if判断的是InvokeRequired,也就是this.InvokeRequired,那么这个委托的回调也就必须是this发起,那么
“BeginInvoke(method);”等同于“this.BeginInvoke(method);”意思是当前控件所在线程异步回调这个要执行的委托 --------------------编程问答--------------------
引用 4 楼 cheakbu 的回复:
这个可以找到

那就可以啊
 MethodInvoker method = delegate { SendMessageHandler(message); };
就是定义个匿名委托啊。{}内为方法实体
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,