Вы можете использовать компилятор C # 4. Компилятор C # 3 имел более слабый вывод типов при преобразованиях групп методов. Подробности можно прочитать в ответе Эрика Липперта здесь . Мне не совсем ясно, означает ли это, что компилятор C # 3 на самом деле не реализует спецификацию C # 3, или сама спецификация изменилась между 3 и 4 в этой области. Это довольно академический вопрос по сравнению с тем, делает ли компилятор то, что вы хотите ;;
(Я только что проверил это, и ваша программа не компилируется с VS 2008, но компилируется с VS 2010.)