C# — это мультипарадигмальный управляемый объектно-ориентированный язык программирования со сборкой мусора, созданный Microsoft совместно с платформой .
Версии 1.0/1.2 и 2.0 C# были представлены и утверждены как стандарты ECMA и ISO/IEC . По состоянию на декабрь 2010 г. спецификаций ECMA или ISO/IEC для C# 3.0 и 4.0 не существует, однако спецификации языка доступны в Microsoft ( 3.0 и 4.0 соответственно).
Система типов языка изначально была статической, и разрешалось только явное объявление переменных. Однако введение var (C# 3.0) и dynamic (C# 4.0) позволяет использовать вывод типов для неявной типизации переменных и использовать динамические системы типов соответственно. Делегаты (особенно с поддержкой лексического закрытия для анонимных методов (C# 2.0) и лямбда-выражений (C# 3.0)) позволяют использовать язык для функционального программирования.
Компиляция обычно выполняется в Common Intermediate Language (CIL), который затем JIT-компилируется в машинный код (и кэшируется) во время выполнения в Common Language Runtime (CLR); однако такие варианты, как Ngen (.NET) и AOT (Mono), означают, что это не единственный вариант. Кроме того, некоторые фреймворки (например, Micro Framework) действуют как интерпретаторы CIL без JIT.
Возможно, необычно то, что дженерики в C# предоставляются (частично) средой выполнения, в отличие (для сравнения) от шаблонов C++ или дженериков Java (которые используют стирание типов).
Благодаря сочетанию Microsoft .NET для Windows (настольный/серверный), Mono (настольный/серверный/мобильный), Silverlight/Moonlight (браузерный/мобильный), Compact Framework (мобильный) и Micro Framework (встроенные устройства) он доступен для широкого спектра платформ.
Привет, мир
using System; class Hello { static void Main() { Console.WriteLine("Hello, World"); } }Часто задаваемые посты
Ресурсы