Данная историческая справка убедительно показывает постепенное нарастание от версии к версии возможностей языка C#.
Версия 1.0 языка C# окончательно вышла вместе с Visual Studio.NET в феврале 2002 года. Некоторые возможности данной версии представляли собой расширения аналогов в Java 1.4. Так в C# имелись свойства, индексаторы, делегаты, события, структуры, передаваемые по значению, циклы foreach, автоматическое преобразование встроенных типов в объекты, атрибуты, встроенные средства взаимодействия с неуправляемым кодом и пр.
С другой стороны, в C# осуществлен перенос ряда возможностей C++, отсутствовавших в Java. Также в C# в целях безопасности кода значительно ограничена возможность работы с указателями.
Версия 2.0 языка C# вышла 7 ноября 2005 года вместе с Visual Studio 2005 и .NET 2.0 и включала ряд новых возможностей. Перечислим некоторые из них без объяснений:
- частичные типы;
- обобщённые, или параметризованные типы;
- новая форма итератора, позволяющая создавать сопрограммы;
- анонимные методы;
- обнуляемые типы-значения, представляющие собой те же самые типы-значения, способные принимать также значение null;
- возможность создавать хранимые процедуры, триггеры и даже типы данных на .Net языках (в том числе и на C#);
- поддержка 64-разрядных вычислений.
Версия 3.0 языка C# вошла в Visual Studio 2008 и .NET 3.5. В C# 3.0 появились следующие добавления к языку:
- ключевые слова select, from, where, позволяющие делать запросы;
- инициализация объекта вместе с его свойствами;
- деревья выражений;
- лямбда-выражения теперь могут представляться в виде структуры данных, доступной для обхода во время выполнения;
- вывод типов локальной переменной;
- безымянные типы;
- методы-расширения – добавление метода в существующий класс с помощью ключевого слова this при первом параметре статической функции;
- автоматические свойства: компилятор сгенерирует закрытое (private) поле и соответствующие аксессор и мутатор для кода;
- совместимость C# 3.0 с C# 2.0 по генерируемому MSIL-коду.
Версия 4.0 языка C# была выпущена в апреле 2010 года, одновременно с выпуском Visual Studio 2010. В версии 4.0 появились новые возможности применения позднего связывания для использования:
- с языками с динамической типизацией;
- с COM-объектами;
- отражений (reflection);
- объектов с изменяемой структурой (DOM);
- именованных и опциональных параметров;
- новых возможностей COM interop;
- ковариантности и контрвариантности;
- контрактов в коде (Code Contracts).
Сегодня в связи с популярностью С# существует большое количество разнообразных сред разработки. К ключевым можно отнести:
- Borland C# Builder;
- SharpDevelop;
- Visual Studio;
- Visual Studio Express;
- MonoDevelop.
Каждый конкретный разработчик вправе выбрать любую из них.
4.2 Основы языка С#
В данном разделе будут рассмотрены основные составляющие языка, начиная с его алфавита, а также правила построения из рассмотренных составляющих более крупных конструкций.