Оба этих фрагмента кода в точности выполняют одну и ту же работу или фактически являются одинаковыми.
В первом примере вы явно указываете тип делегата, который является обязательным, если вы используете 1.1 илиВерсия фреймворка 2.0.
Но во втором примере вы позволяете вашему компилятору найти соответствующий тип делегата во время компиляции , который известен как вывод типа и работает толькоот версии 3.0 фреймворка.