
появился достаточно давно(уже появился C# 3.0), но многие до сих пор не понимают всех прелестей и нововведений, которые присутствуют в этом языке. Все хорошее познается в сравнении - неправда ли? Вот и я решил сделать краткий обзор языков программирования, с целью их сравнения с новичком:

Сравнение С# и C++:
Андерс Хейлсберг, главный разработчик C#, утверждает: “По-моему мнению, основное отличие между C# и другими языками программирования, особенно Java, заключается в том, что мы постарались остаться как можно ближе к С++”.
Сходства:
»
в С# сохранены основные возможности языка C++, которые не были включены в Java. Это, касается, например, перечислений. Более того в C# для перечеслений обеспечивается безопасность типов.
»
С# заимствовал из С++ понятия операторов и ключевых слов. Обеспечивается перегрузка операторов.
»
В C# реализована возможность добавления блоков ненадежного кода.
Различия:
»
В C# использован комплексный метод программирования. При C++ программерам приходилось объявлять классы в заголовочном файле и реализовать класы в отдельном файле. Заголовочные файлы (Interface Definition Language - язык описания интерфейсов) и сложные интерфейсы не являются необходимыми.
»
В C++ переменные экземпляров объектов должны быть явно инициализированы в конструкторе. В C# это делается заранее.
»
Для массива, размер которого [n-1], в С++ можно устанавливать ссылки на это нереальное значение n - то есть выходить за границы массива. В C# это недопустимо.
»
С++ поддерживает множественное наслдедование классов. Это приводит к определенному усложнению коду. C# не поддерживает множественного наслдедования. Оно может быть реализовано посредством интерфейсов.
»
В C# все классы имеют единый базовый класс. Если класс не является производным от другого класса, он автоматически наследует свойства и члены из System.Object.
»
Код программ на С/С++ компилируется в формат машиннго языка, который будет выполнятся на определенном процессоре и в определенной ОС. Для C# предусмотрена компиляция программ на промежуточный язык IL (Intermediate Language). Код IL может запускаться на любой платформе при использовании среды .NET. С помощью JIT-компилятора он может быть преобразован в машинно-зависимый код для выполнения на платформе .NET
Сравнение C# и Java:
Сходства:
во многом C# похож на Java. В неог включены языковые свойства Java, такие как единичное наследование, интерфейсы, близкий синтаксис и компиляция в промежуточный формат. Но C# отличается от Java использованием свойств, позаимствоннах из Delphi (Андерс Хейлсберг кстати придумал), непосредственной интеграцией с COM (Component Object Model) моделью.
»
Для обоих языков компиляция выполняется в машинно-независимый и независимый от языка программирования программный код, который запускается в рамках управляемой среды выполнения.
»
Концепция JVM (Java Virtual Machine) очень подобна подсистеме CLR (Common Language Runtime) языка C#.
»
Сборщик мусора.
»
Проверка кода перед выполнением.
» Не существует глобальных функций или констант, все они должны принадлежать какому-либо классу.
» С# и Java не используют концепцию заголовочных файлов.
» Оба языка поддреживают внутренние классы.
Различия:
Одно из основных различий между языками заключается в полной интеграции С# со стандартом COM. Разработчики могут наследовать компоненты, созданные с помощью любого языка программирования, который поддерживается .NET. Эти компоненты в дальнейшеммогут сами выступить в роли базовых для программ на других языках.
Код на промежуточном языке MSIL не интерпретируется, а компилируется в машинный код с помощью JIT-компилятора. Вслдествие этого приложения созданные с помощью C#, выполняются быстрее, чем те , что написаны Java.