когда мы должны использовать (_, args) =>

случайно нашел вот такой код

     public void AddAnimation(Button button)
    {
        //some code here 

        button.MouseHover += (_, args) =>
        {
            contractTimer.Stop();
            expandTimer.Start();
            animationStarted = DateTime.Now;
            button.BackColor = Color.DimGray;
        };

       //other code here
    }

что я знаю, если мы хотим добавить событие, мы используем

    private void Control_Event(object sender, EventArgs e)
    {
       //some code here
    }

кто-нибудь может объяснить мне, почему они использовали button.MouseHover += (_, args) => ....


person Grezzled    schedule 06.01.2016    source источник
comment
Весь бизнес от (_, args) до }; — это лямбда-выражение, которое является просто способом создания анонимной функции. Они используют странные имена для аргументов, но на самом деле имена не имеют значения.   -  person adv12    schedule 06.01.2016
comment
Когда вы хотите, это просто лямбда-выражение с двумя параметрами. Лично я не нахожу имя _ очень значимым.   -  person Jodrell    schedule 06.01.2016
comment
На самом деле настоящий вопрос заключался в том, почему они используют лямбду в первую очередь, и это не объясняется и даже не упоминается в связанном посте. Так что (еще раз) на самом деле это не дубликат. - Одно из преимуществ использования лямбды заключается в том, что она может использовать все переменные и параметры, доступные в коде, который ее создает.   -  person TaW    schedule 06.01.2016