请问下面的Lambda表达式在.net2.0里面该如何表示? 本帖最后由 slyzly 于 2011-07-11 17:37:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 this.SafeInvoke(() =>{ tsStatus.Text = "准备完毕";});转换成this.SafeInvoke(delegate (){ tsStatus.Text = "准备完毕";}); anonymous methods(匿名方法)this.SafeInvoke(delegate{ tsStatus.Text = "准备完毕";}); public static void SafeInvoke(this Control control, InvokeHandler handler) {其中的this该怎么转换呢?this Control在.net2.0里面会报错 Lambda表达式可以理解成一个委托。比如(man=>man.Name),=>左边的man是函数的传入参数,=>右边就是这个函数返回的结果,等价的函数形式就象下面这样:string GetName(Man man){ return man.Name;} .net 2.0没有扩展方法。去掉这个this,改为一般的static方法即可。不过,其他的原代码可有的改了。 谢谢大家回答,目前改成了这样,不知道有没有问题,希望大家帮忙看下。 public static class ControlCrossThreadCalls { public delegate void InvokeHandler(); public static void SafeInvoke(Control control, InvokeHandler handler) { if (control.InvokeRequired) { control.Invoke(handler); } else { handler(); } }}调用ControlCrossThreadCalls.SafeInvoke(this, new ControlCrossThreadCalls.InvokeHandler(delegate() { tsTotal.Text = "当前项:" + itemIndex + "/" + lvInfo.Items.Count; tsResult.Text = "成功"; })); 其中能给两个控件赋值吗?tsTotal.Text = "当前项:" + itemIndex + "/" + lvInfo.Items.Count; tsResult.Text = "成功"; 求高手解答 连接SQL2000问题 b/s架构中如何实现C/S中的对话框,即客户端和服务端的实时对话 datagridview莫名其妙的恢复了样式【winform】 BindingNavigator的显示绑定数据问题 请那有省份,城市邮编的数据库,麻烦给我发一份。 请问一个c# 使用reportview 显示rdlc 的打印问题 想统计一个部门一年使用物品的总和,怎么办?? 求教如何去除字符串内未闭合引号?急! 这是vs.net2005精简版下载地址: C#:统计输入数据出现的次数 求高手解答
{
tsStatus.Text = "准备完毕";
});转换成this.SafeInvoke(delegate ()
{
tsStatus.Text = "准备完毕";
});
this.SafeInvoke(delegate
{
tsStatus.Text = "准备完毕";
});
{
其中的this该怎么转换呢?this Control在.net2.0里面会报错
{
return man.Name;
}
谢谢大家回答,目前改成了这样,不知道有没有问题,希望大家帮忙看下。
public static class ControlCrossThreadCalls
{
public delegate void InvokeHandler();
public static void SafeInvoke(Control control, InvokeHandler handler)
{
if (control.InvokeRequired)
{
control.Invoke(handler);
}
else
{
handler();
}
}
}
调用ControlCrossThreadCalls.SafeInvoke(this, new ControlCrossThreadCalls.InvokeHandler(delegate()
{
tsTotal.Text = "当前项:" + itemIndex + "/" + lvInfo.Items.Count;
tsResult.Text = "成功";
}));
tsTotal.Text = "当前项:" + itemIndex + "/" + lvInfo.Items.Count;
tsResult.Text = "成功";