На этом шаге мы кратко перечислим особенности этого языка.
Язык программирования C# простой, красивый, эффективный и гибкий. С помощью программ на языке C# решают самые разные задачи. На C# можно создавать как небольшие консольные программы, так и программы с графическим интерфейсом. Код, написанный на языке С#, лаконичен и понятен (хотя здесь, конечно, многое зависит от программиста). В этом отношении язык программирования C# практически не имеет конкурентов.
Кроме собственно преимуществ языка С#, немаловажно и то, что язык поддерживается компанией Microsoft. Поэтому он идеально подходит, чтобы писать программы для выполнения под управлением операционной системы Windows.
Как уже отмечалось, язык C# является неотъемлемой частью технологии (или платформы) .Net Framework. Основу платформы .Net Framework составляет среда исполнения CLR (сокращение от Common Language Runtime) и библиотека классов, которая используется при программировании на языке С#.
При компилировании программного кода, написанного на языке С#, создастся промежуточный код. Это промежуточный код реализован на языке MSIL (сокращение от Microsoft Intermediate Language). Промежуточный код выполняется под управлением системы CLR. Система CLR запускает JIT-компилятор (сокращение от Just In Time), который, собственно, и переводит промежуточный код в исполняемые инструкции.
Описанная нетривиальная схема компилирования программ с привлечением промежуточного кода служит важной цели. Дело в том, что технология .Net Framework ориентирована на совместное использование программных кодов, написанных на разных языках программирования. Базируется эта технология на том, что программные коды с разных языков программирования "переводятся" (в процессе компиляции) в промежуточный код на общем универсальном языке. Проще говоря, коды на разных языках программирования приводятся "к общему знаменателю", которым является промежуточный язык MSIL.
Весь этот процесс для нас важен исключительное познавательной точки зрения. Более принципиальными являются вопросы, касающиеся особенностей собственно языка С#.
Первое, что стоит отметить: язык C# полностью объектно-ориентированный. Это означает, что даже самая маленькая программа на языке C# должна содержать описание хотя бы одного класса.
Как отмечалось выше, базовые синтаксические конструкции языка C# напоминают (или просто совпадают) соответствующие конструкции в языках C++ и/или Java. Но, кроме них, язык C# содержит множество интересных п полезных особенностей, с которыми мы познакомимся далее.
Знакомым с языками программирования C++ и/или Java будет полезно узнать, что в языке С#, как и в языке C++, используются пространства имен, указатели, существует переопределение операторов. Также в С#, как и в Java, имеются интерфейсы, объекты реализуются через ссылки, используется система автоматической "уборки мусора". А еще в C# используются делегаты, концепция которых идеологически близка к концепции указателей на функции в C++. Массивы в C# больше напоминают массивы Java, но вообще в C# они достаточно специфичные. Индексаторы в C# позволяют индексировать объекты - подобный механизм, основанный на переопределении оператора "квадратные скобки", есть в C++. Свойства, которые используются в С#, представляют собой нечто среднее между полем и методом, хотя, конечно, больше напоминают поле с особым режимом доступа.
Есть в языке C# и "классические" механизмы, характерные для большинства языков, поддерживающих парадигму ООП. Мы познакомимся с тем, как на основе классов и объектов в языке С# реализуется инкапсуляция, узнаем, что такое наследование и как в C# используется полиморфизм. Будет много других тем и вопросов, которые мы изучим.
На следующем шаге мы рассмотрим программное обеспечение, используемое для написания программ на этом языке.