代码匿名委托?求分析。
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); };
这个就是一个委托的声明 --------------------编程问答--------------------
MethodInvoker才是委托,而SendMessageHandler是具体方法,不是委托。
if判断的是InvokeRequired,也就是this.InvokeRequired,那么这个委托的回调也就必须是this发起,那么
“BeginInvoke(method);”等同于“this.BeginInvoke(method);”意思是当前控件所在线程异步回调这个要执行的委托 --------------------编程问答--------------------
那就可以啊
MethodInvoker method = delegate { SendMessageHandler(message); };
就是定义个匿名委托啊。{}内为方法实体
补充:.NET技术 , C#