Ответ 1
Завершите пробную версию для моей собственной книги, но, надеюсь, не безвозмездно: получите версию раннего доступа второе издание С# в глубине. Он пропускает С# 1, но подробно описывает каждую функцию С# 2, 3 и 4.
Если вам нужен только список функций, из приложения C:
С# 2.0:
Основными функциями С# 2 были дженерики, типы с нулевыми значениями, анонимные методы и другие связанные с делегатом расширения и блоки итераторов. Кроме того, были введены несколько более мелких функций: частичные типы, статические классы, свойства с различными модификаторами доступа для геттеров и сеттеров, псевдонимы пространств имен, директивы pragma и буферы фиксированного размера.
С# 3.0:
С# 3, в основном построенный в направлении LINQ, хотя многие функции полезны в других местах. Автоматические свойства, неявное типирование массивов и локальных переменных, объектов и инициализаторы коллекции и анонимные типы описаны в главе XREF ch8. Лямбда-выражения и деревья выражений расширили прогресс, достигнутый делегатами в версии 2.0, а методы расширения - последний компонент выражений запросов. Частичные методы были добавлены только в С# 3, хотя сами частичные типы были в С# 2. Как отмечает Марк, комментарии общего типа получили значительное повышение на С# 3.
С# 4.0:
С# 4.0 имеет некоторые функции, направленные на интероперабельность, но не имеет одинаковых целеустремленность С# 3.0. Опять же существует достаточно четкий разрыв между "маленькие" функции (называемые аргументы, необязательные параметры, лучший COM-взаимодействие, общая дисперсия) и огромная особенность динамических типирование.
У меня есть "путеводитель по блефам" для С# 2, а другой для С# 3, но я еще не сделал эквивалент для С# 4, но я боюсь.