MSNET
narod.ru
Сравнение C#, Java и C++

Оглавление

Главная страница

Новости технологий

Статьи, документы

Контакты

Пишите письма


   Содержание  Дальше  

Эта статья посвящена описанию основных возможностей нового языка программирования C#, а также его сравнению с ближайшими родственниками: Java и C++. Мы начнем  с краткого перечисления сходных свойств в C# и Java, а затем рассмотрим новые возможности C#.

Содержание

  1. C# и Java
  2. Свойства
  3. Индексаторы
  4. Делегаты
  5. События
  6. Перечисления
  7. Коллекции и оператор Foreach
  8. Структуры
  9. Унификация типов
  10. Перегрузка операторов
  11. Полиморфизм
  12. Интерфейсы
  13. Управление версиями
  14. Модификаторы параметров
  15. Атрибуты
  16. Операторы выбора
  17. Встроенные типы
  18. Модификаторы полей
  19. Операторы перехода
  20. Сборки, пространства имен и уровни доступа
  21. Арифметика с указателями

Введение

В июне 2000 года компания Microsoft анонсировала платформу .NET и новый язык программирования, получивший название C# (читается "Си шарп"). C# - это строго типизированный объектно-ориентированный язык, призванный обеспечить оптимальное сочетание удобства, простоты, выразительности и производительности. Платформа .NET основана на использовании общей среды выполнения кода CLR (Common Language Runtime), подобной виртуальной Java-машине, и набора библиотек, доступных для ряда языков программирования. Независимо от того, какой язык используется в процессе разработки, программа компилируется в промежуточный код IL (Intermediate Language). C# и .NET в некотором смысле являются "родственными душами": некоторые свойства языка специально разрабатывались, чтобы обеспечить комфортную работу в среде .NET, в то же время и некоторые свойства .NET специально закладывались для поддержки C#, хотя .NET нацелена на использование многих языков программирования. В этой статье в основном рассматривается C#, но иногда полезно переключаться и на платформу .NET. Язык C# разрабатывался с учетом опыта многих предшествующих ему языков программирования, но в первую очередь, конечно, C++ и Java. Родителями C# стали Anders Hejlsberg, получивший известность, как автор Delphi, и Scott Wiltamuth.

1. C# и Java

Ниже приведен перечень свойств, характерных как для C#, так и для Java. Оба эти языка можно рассматривать как попытку усовершенствовать C++, и нужно признать, что в обоих случаях это удалось. Как можно увидеть из приведенного ниже списка, во многом C# и Java схожи, но было бы неверно отождествлять эти языки.

  • Исходный текст программы компилируется в промежуточный код, не зависящий от языка и платформы; этот код в дальнейшем выполняется в специальной управляемой среде.
  • Автоматический сбор мусора (Garbage Collection) и запрет на использование указателей. В C# допускается ограниченное использование указателей в блоках кода, помечаемых как "ненадежные" (unsafe).
  • Отсутствие заголовочных файлов. Весь код помещается в пакеты (packages) и сборки (assemblies). Никаких проблем с порядком объявления классов в случае наличия перекрестных ссылок.
  • Объекты создаются с помощью ключевого слова new, выделение памяти производится из "кучи" (heap), находящейся в распоряжении среды выполнения.
  • Многопоточность поддерживается путем блокирования объектов
  • Интерфейсы, с множественным наследование интерфейсов, однократное наследование реализаций.
  • Внутренние классы
  • Отсутствие концепции наследования классов с заданным уровнем доступа.
  • Отсутствие глобальных функций и констант, все элементы должны принадлежать классам.
  • Массивы и строки со встроенной длиной и проверкой границ.
  • Не применяются операторы ->, ::. Во всех случаях используется оператор ".".
  • null и boolean/bool являются ключевыми словами.
  • Любая величина должна быть проинициализирована до того, как будет использована.
  • Нельзя использовать целые числа (integers) для управления операторами if.
  • Блоки try могут иметь заключительное предложение finally.

 

   Содержание  Дальше