c# – MethodInvoke委托或lambda表达式

两者有什么区别?
Invoke((MethodInvoker) delegate {
        checkedListBox1.Items.RemoveAt(i);
        checkedListBox1.Items.Insert(i,temp + validity);
        checkedListBox1.Update();
    }
);

VS

Invoke((MethodInvoker)
    (
        () => 
        {
            checkedListBox1.Items.RemoveAt(i);
            checkedListBox1.Items.Insert(i,temp + validity);
            checkedListBox1.Update();
        }
    )
);

有没有理由使用lambda表达式?和(MethodInvoker)将代理和lambda转换成MethodInvoker类型?什么样的表达式不需要(MethodInvoker)转换?

解决方法

1)lambda表达式更短,更干净

2)是的

3)您可以使用Action类型,如下所示:

Invoke(new Action(
    () => 
    {
        checkedListBox1.Items.RemoveAt(i);
        checkedListBox1.Items.Insert(i,temp + validity);
        checkedListBox1.Update();
    }
)
);

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...