传统方式:
delegate void ChangeDelegate(string text);
private void Settext(string text)
{
textBox1.Text = text;
}
private void Change(EventArgs e)
{
PublisherEventArgs args = (PublisherEventArgs)e;
string text = args.text;
this.BeginInvoke(new ChangeDelegate(Settext), text);
}
其中调用了事件订阅的方法,直接使用可以更改方法名为private void Change(string text)即可直接赋值。
这种方法的缺点时需要在外部声明委托和方法,代码不够简单。所以优化后的结果如下:
private void Change(EventArgs e)
{
PublisherEventArgs args = (PublisherEventArgs)e;
string text = args.text;
Action<string> Set = text => textBox1.Text = text;
this.BeginInvoke(Set, text);
}
因此使用Lambdad可以让代码更加优雅。
网友评论