Особенности языка программирования C# (Си-шарп)

Автор работы: Пользователь скрыл имя, 16 Декабря 2010 в 19:19, реферат

Краткое описание

C# — это типизированный, объектно-ориентированный, простой и в то же время мощный язык программирования, который позволяет разработчикам создавать многофункциональные приложения. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET (программной платформы от компании Microsoft, предназначенной для создания обычных программ и веб-приложений).

Содержание работы

Введение 3
История возникновения 4
Особенности C# 5
Особенности реализации основных конструкций в C#. 6
Типы данных 6
Примитивные типы 6
Ссылочные типы 6
Структуры (записи) 7
Перечислимые типы 8
Массивы и коллекции 8
Параметризованные (обобщённые) типы 8
Переменные. 9
Циклы. 10
Цикл foreach 10
Цикл for 10
Цикл while 10
Цикл do-while 10
Функции и процедуры 11
Возвращаемые значения 11
Параметры 12
Некоторые особенности синтаксиса 13
Перегрузка операций 13
Пространства имён 13
Классы 14
Объявление класса 14
Создание объектов 15
Наследование классов 16
Таблица допустимых в определении классов комбинаций модификаторов доступа 17
Интерфейсы 17
Свойства и индексаторы 18
Сравнение C, C++ и C# 19
Сфера применения C# 21
Заключение 22
Список литературы 23
Приложения 24
Приложение 1 24
Приложение 2 24
Приложение 3 25
Приложение 4 25

Содержимое работы - 1 файл

Реферат.docx

— 55.09 Кб (Скачать файл)

Федеральное агентство по образованию

ГОУ ВПО «Уральский Государственный  Технический Университет  – УПИ» имени первого  Президента России Б.Н. Ельцина 
 
 
 
 
 
 

РЕФЕРАТ 

ЯЗЫК  ПРОГРАММИРОВАНИЯ c# (СИ-ШАРП) 
 
 
 
 

                Исполнители: Хмелинин. С.И.

                                       Боталова М.Н.

                                       Склярова С.В.

                           (группа ИМ-290301)

                Руководитель: Мокрушин А.А. 
                 
                 
                 

Екатеринбург 2010 

Оглавление

Введение 3

История возникновения 4

Особенности C# 5

Особенности реализации основных конструкций в C#. 6

Типы данных 6

    Примитивные типы 6

    Ссылочные типы 6

    Структуры (записи) 7

    Перечислимые типы 8

    Массивы и коллекции 8

    Параметризованные (обобщённые) типы 8

Переменные. 9

Циклы. 10

    Цикл foreach 10

    Цикл for 10

    Цикл while 10

    Цикл do-while 10

Функции и процедуры 11

    Возвращаемые значения 11

    Параметры 12

Некоторые особенности синтаксиса 13

Перегрузка операций 13

Пространства имён 13

Классы 14

    Объявление класса 14

    Создание объектов 15

    Наследование классов 16

    Таблица допустимых в определении классов комбинаций модификаторов доступа 17

    Интерфейсы 17

Свойства и индексаторы 18

Сравнение C, C++ и C# 19

Сфера применения C# 21

Заключение 22

Список литературы 23

Приложения 24

Приложение 1 24

Приложение 2 24

Приложение 3 25

Приложение 4 25 

 

Введение

C# — это типизированный, объектно-ориентированный, простой и в то же время мощный язык программирования, который позволяет разработчикам создавать многофункциональные приложения. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET (программной платформы от компании Microsoft, предназначенной для создания обычных программ и веб-приложений).

Символ # (октоторп) в названии языка печатается на клавиатуре как Shift+3, что символизирует третью реализацию C. С другой стороны # можно интерпретировать и как две пары плюсов ++;++, намекающие на новый шаг в развитии языка по сравнению с C++ (подобно шагу от C к C++), и как музыкальный символ диез, вместе с буквой C составляющий в английском языке название ноты до-диез (англ. C sharp). Октоторп # часто называют «шарпом» (от англ. sharp) из-за его схожести с диезом , отсюда и название языка — «Си шарп».

C# относится к  семье языков с C-подобным синтаксисом,  из них его синтаксис наиболее  близок к C++ и Java. С# — это фактически гибрид разных языков. Переняв многое от своих предшественников — языков C++, Java, Delphi, Модула и Smalltalk - и опираясь на практику их использования, С# синтаксически не менее (если не более) чист, чем Java, так же прост, как Visual Basic, и обладает практически той же мощью и гибкостью, что и C++.

Цель данной работы:

  • Дать краткое представление языка C# и его особенностей

Сопутствующие задачи:

  • Кратко рассмотреть историю создания языка C#
  • Представить реализацию основных синтаксических конструкций
  • Проанализировать сходства и различия с другими подобными языками, такими, как С и С++.
  • Дать понятие о современных сферах применения C#.

 

История возникновения

Язык C# появился на свет в июне 2000 г. в результате кропотливой  работы большой группы разработчиков  компании Microsoft, возглавляемой Андерсом Хейлсбергом (Anders Hejlsberg).

Появление языка C# и  инициативы .NET отнюдь не случайно пришлось на начало лета 2000 г. Именно к этому  моменту компания Microsoft подготовила  промышленные версии новых компонентных технологий и решений в области  обмена сообщениями и данными, а  также создания Internet-приложений (COM+, ASP+, ADO+, SOAP, Biztalk Framework). Несомненно, лучшим способом продвижения этих новинок  является создание инструментария для  разработчиков с их полноценной  поддержкой. В этом и заключается  одна из главных задач нового языка C#. Кроме того, Microsoft не могла больше расширять все те же инструменты и языки разработки, делая их все более и более сложными (а это было необходимо, так как требования поддержки современного оборудования и требования обеспечения обратной совместимости с программными продуктами начала 90-х годов становились всё более конфликтующими). Наступил момент, когда необходимо начать с чистого листа для того, чтобы создать простой, но имеющий сложную структуру набор языков, сред и средств разработки, которые позволят разработчику легко создавать современные программные продукты.

С# и .NET являются той  самой отправной точкой. Если говорить упрощенно, то .NET представляет собой  новую платформу, новый API (англ. Application Programming Interface - интерфейс прикладного программирования)для программирования в Windows, а С# - новый язык, созданный с нуля, для работы с этой платформой, а также для извлечения всех выгод из прогресса сред разработки и достижений объектно-ориентированного программирования в течение последних 20 лет.

 

Особенности C#

  • Полный и  хорошо определенный набор основных типов.
  • Встроенная поддержка автоматической генерации XML-документации.
  • Автоматическое освобождение динамически распределенной памяти.
  • Возможность отметки классов и методов атрибутами, определяемыми пользователем. (это может быть полезно при документировании и способно воздействовать на процесс компиляции - например, можно пометить методы, которые должны компилироваться только в отладочном режиме).
  • Полный доступ к библиотеке базовых классов .NET, а также легкий доступ к Windows API (если это действительно необходимо).
  • Указатели и прямой доступ к памяти, если они необходимы (однако язык разработан таким образом, что практически во всех случаях можно обойтись и без этого).
  • Поддержка свойств и событий в стиле Visual Basic.
  • Простое изменение ключей компиляции. Позволяет получать исполняемые файлы или библиотеки компонентов .NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ).
  • Возможность использования С# для написания динамических web-страниц ASP.NET.

Одной из областей, для  которых не предназначен этот язык, являются критичные по времени и  высокопроизводительные программы, когда  имеет значение, занимать на исполнение цикла 1000 или 1050 машинных циклов, и освобождать ресурсы требуется немедленно. C++ остается в этой области наилучшим из языков высокого уровня. В С# отсутствуют некоторые ключевые моменты, необходимые для создания высокопроизводительных приложений, в частности подставляемые функции и деструкторы, выполнение которых гарантируется в определенных точках кода.

 

Особенности реализации основных конструкций в C#.

Авторы C# стремились создать язык, сочетающий простоту и выразительность современных  объектно-ориентированных языков (вроде Java) c богатством возможностей и мощью C++. Наиболее важная новая характеристика С#, по сравнению с предшествующими языками, - это поддержка возможности взаимодействия нескольких компьютерных языков (многоязыкового программирования). По словам Андерса Хейлсберга, C# позаимствовал большинство своих синтаксических конструкций из C++. В частности, в нем присутствуют такие удобные типы данных, как структуры и перечисления (другой потомок C++ -- Java -- лишен этих элементов, что создает определенные неудобства при программировании). Синтаксические конструкции С# унаследованы не только от C++, но и от C, и от Visual Basic. Например, в С#, как и в Visual Basic, используются свойства классов. Как C++, С# позволяет производить перегрузку операторов для созданных вами типов.

Рассмотрим особенности  реализации основных синтаксических конструкций  в C#:

Типы  данных

Примитивные типы

Поддерживает идею примитивных типов (которые в C# являются подмножеством типов-значений — value types). Для трансляции примитивных типов в объектные используется их автоматическое «заворачивание» в объекты (boxing) и «разворачивание» (unboxing). У C# имеется больше примитивных типов, чем у Java, за счёт беззнаковых целых типов (unsigned), имеющихся парно ко всем знаковым, и специального типа decimal для высокоточных вычислений с фиксированной запятой.

Ссылочные типы

Переменные ссылочных  типов, называемые объектами, сохраняют  ссылки на фактические данные. Для  объявления ссылочных типов используются следующие ключевые слова: class, interface, delegate. Также существуют встроенные типы: object и string.

Интерфейс содержит только подписи методов, свойств, событий  или индексаторов. Реализация членов выполняется в классе или в  структуре, реализующей интерфейс. Интерфейс способен наследовать  от одного или нескольких базовых  интерфейсов. Класс, реализующий интерфейс, может явным образом реализовывать члены этого интерфейса. Явно реализованный член можно вызвать только через экземпляр интерфейса, но не через экземпляр класса.

Ключевое слово delegate используется для объявления ссылочного типа, который может быть использован  для инкапсуляции именованного или  анонимного метода. Делегаты аналогичны используемым в языке C++ указателям на функции, но являются строго типизированными  и безопасными. Делегат должен быть создан при помощи метода или лямбда-выражения, имеющего совместимые возвращаемый тип и входные параметры.

Тип object представляет собой псевдоним для Object в платформе .NET Framework. В унифицированной системе  типов C# все типы, предопределенные и пользовательские, ссылочные типы и типы значений, наследуют непосредственно  или косвенно от Object. Переменным типа object можно назначать значения любых  типов. Когда переменная типа значения преобразуется в объект, говорят, что она упаковывается. Когда  переменная типа object преобразуется  в тип значения, говорят, что она  распаковывается.

Тип данных string —  это последовательность, не содержащая ни одного, или содержащая любое число знаков Юникода. В платформе.NET Framework string является псевдонимом для String.

Структуры (записи)

C# позволяет создавать  пользовательские типы-значения, используя  ключевое слово struct. В отличие  от экземпляров классов, экземпляры  типов-значений создаются не в  куче, а на стеке вызовов или  в составе экземпляра объекта,  в котором они объявлены, что  в некоторых случаях повышает  производительность кода. С точки  зрения программиста они подобны  классам, но с несколькими ограничениями:  у них не может быть явного  конструктора без параметров (но  может быть конструктор с параметрами), от них нельзя наследовать, и они не могут явно наследоваться от других типов (всегда неявно наследуются от класса System.ValueType), но могут реализовывать интерфейсы. Кроме того, значения struct-типов поддерживают логику присваивания значения (то есть переменная этого типа содержит не ссылку, а само значение, и присваивание одной переменной значения другой приводит не к копированию ссылки на один и тот же объект, а к копированию значений полей одной структуры в другую).

Информация о работе Особенности языка программирования C# (Си-шарп)