MethodInvoke délégué ou de l'expression lambda

Quelle est la différence entre les deux?

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();
        }
    )
);

Est-il une raison pour utiliser l'expression lambda? Et est (MethodInvoker) casting délégué et lambda de type MethodInvoker? Ce genre d'expression ne nécessite pas de (MethodInvoker) cast?

OriginalL'auteur Jack | 2011-10-13