Разработан в 1998—2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота[6] как язык разработки приложений для платформы Microsoft .NET Framework и .NET Core. В Си выражение среда разработки c# синтаксически некорректно, так как результат условного оператора не может служить lvalue (то есть, левой частью оператора присваивания). В данной таблице указаны приоритеты операторов и их ассоциативность.
CLR предоставляет С#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C#, точно так же, как это делается для программ на VB.NET, J# и др. Так, например, в C– не требуется явного объявления типа переменных, в нём отсутствуют структуры и указатели. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, переменные, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. C– (читается как «Си минус минус») — переносимый язык программирования низкого уровня, используемый как промежуточное представление для сверхвысокоуровневых языков.
Арифметические Операторы[править Править Код]
Названия языков программирования не принято переводить, поэтому язык называют, используя транскрипцию, — «Си шарп». Некоторые из разработчиков C–, включая Пейтон-Джонса, Диаша (João Dias) и Рэмси, работают или принимали участие в разработке Glasgow Haskell Compiler[4][5]. Кодовая база и разработка GHC базируются[прояснить] в Microsoft Research в Кембридже, хотя это не проект Microsoft.
- Некоторые из разработчиков C–, включая Пейтон-Джонса, Диаша (João Dias) и Рэмси, работают или принимали участие в разработке Glasgow Haskell Compiler[4][5].
- CLR предоставляет С#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования.
- С# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR.
- C# (произносится си шарп) — объектно-ориентированный язык программирования общего назначения.
- C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java.
Например, многие из интегрированных запросов LINQ можно осуществить, используя безымянные делегаты в сочетании с предикатными методами над контейнерами наподобие List.FindAll и List.RemoveAll. Язык программирования C++ поддерживает все операторы своего прародителя Си и дополнен новыми операторами и возможностями. Компилятор использует таблицу приоритетов для определения порядка вычисления операторов.
Версия 10[править Править Код]
Создан во второй половине 1990-х годов исследователями функционального программирования Пейтоном-Джонсом и Рэмси Норманом (англ.) (рус.. Основная особенность в сравнении с различными вариантами байткодов в том, что сгенерированный результат на C– является человекочитаемым — текстом на языке с си-подобным синтаксисом. В июне 2004 года Андерс Хейлсберг впервые рассказал на сайте Microsoft о планируемых расширениях языка в C#3.0[18]. В сентябре 2005 года вышли проект спецификации C# three.zero и бета-версия C# three.0, устанавливаемая в виде дополнения к существующим Visual Studio 2005 и .NET 2.zero. Окончательно эта версия языка вошла в Visual Studio 2008 и .NET 3.5. Проект спецификации C# 2.0 впервые был опубликован Microsoft в октябре 2003 года; в 2004 году выходили бета-версии (проект с кодовым названием Whidbey), C# 2.zero окончательно вышел 7 ноября 2005 года вместе с Visual Studio 2005 и .NET 2.0. Из-за технических ограничений на отображение (стандартные шрифты, браузеры и т. д.), а также из-за того, что знак диеза ♯ не представлен на стандартной клавиатуре компьютера, при записи имени языка программирования используют знак решётки (#)[9].
С# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов С#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.zero значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем (однако, эта закономерность была нарушена с выходом C# three.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET).
Операторы Работы С Указателями И Членами Класса[править Править Код]
Тем не менее, на практике (например, при размещении рекламы и коробочном дизайне[11]), «Майкрософт» использует знак диеза. Название «Си шарп» (от англ. sharp — диез) происходит от буквенной музыкальной нотации, где латинской букве C соответствует нота До, а знак диез (англ. sharp) означает повышение соответствующего ноте звука на полутон[7], что аналогично названию языка C++, где «++» обозначает инкремент переменной. Название также является игрой с цепочкой C → C++ → C++++(C#), так как символ «#» можно представить состоящим из 4 знаков «+»[8]. C# (произносится си шарп) — объектно-ориентированный язык программирования общего назначения.
Операторы, указанные в таблице выше (раньше), имеют более высокий приоритет (приоритет вычисления). При рассмотрении выражения, операторы, имеющие более высокий приоритет, будут вычислены раньше операторов с низким приоритетом. Если несколько операторов указаны в одной ячейке, то они имеют одинаковый приоритет и вычисляются в последовательности, задаваемой ассоциативностью. После вычисления первого операнда для неперегруженных операторов «&&», «||» и «,» (оператор «запятая», англ. comma) компилятор вставляет точку следования (англ. sequence point), гарантирующую, что все побочные эффекты (например, оператор «постфиксный ++») будут выполнены до начала вычисления второго операнда. C# three.zero совместим с C# 2.zero по генерируемому MSIL-коду; улучшения в языке — чисто синтаксические и реализуются на этапе компиляции.
Leave a Reply
Want to join the discussion?Feel free to contribute!