c# – MethodInvoke委托或lambda表达式

前端之家收集整理的这篇文章主要介绍了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();
    }
)
);

猜你在找的C#相关文章