Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VSRPP.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
181.63 Кб
Скачать
  1. Общие концепции синтаксиса языка с#

Специально для платформы .NET был разработан новый язык программирования C#. Этот язык сочетает простой синтаксис, похожий на синтаксис язы-ков C++ и Java, и полную поддержку всех современных объектно-ориентирован-ных концепций и подходов. В качестве ориентира при разработке языка было выбрано безопасное программирование, нацеленное на создание надёжного и простого в сопровождении кода. Здесь и далее рассматривается синтаксис пятой версии языка C#, доступной в составе .NET Framework 4.5. Ключевыми структурными понятиями в языке C# являются программы, сборки, пространства имён, пользовательские типы, элементы типов. Исходный код программы на языке C# размещается в одном или нескольких текстовых файлах, имеющих стандартное расширение .cs. В программе объявляются поль-зовательские типы, которые состоят из элементов. Примерами пользовательских типов являются классы и структуры, а примером элемента типа – метод класса. Типы могут быть логически сгруппированы в пространства имён, а физически (после компиляции) – в сборки, представляющие собой файлы с расширением .exe или .dll. Исходный код программы на языке C# – это набор операторов (statements), директив препроцессора и комментариев. Операторы языка C# и допустимые директивы препроцессора подробно будут рассмотрены далее.

Комментарии игнорируются при компиляции и бывают двух видов:

  • Однострочный комментарий – это комментарий, начинающийся с после-довательности // и продолжающийся до конца строки.

  • Блочный (многострочный) комментарий – все символы, заключённые между парами /* и */.

В C# различаются строчные и прописные символы при записи идентификаторов и ключевых слов. Количество пробелов в начале строки, в конце строки и между элементами строки значения не имеет. Это позволяет улучшить визуальную структуру исходного кода программы – операторы одного уровня вложенности обычно сопровождаются одинаковым начальным отступом.

  1. Система типов clr и языка c#. Типы-значения и ссылочные типы

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

К сведениям, хранимым в типе, может относиться следующее:

  • Место для хранения, необходимое для переменной типа.

  • Максимальное и минимальное значения, которые могут быть представлены.

  • Содержащиеся члены (методы, поля, события и т. д.).

  • Базовый тип, который он наследует.

  • Расположение, в котором будет выделена память для переменных во время выполнения.

  • Разрешенные виды операций.

Компилятор использует сведения о типе, чтобы убедиться, что все операции, выполняемые в коде, являются типобезопасными. Например, при объявлении переменной типа int, компилятор позволяет использовать в дополнение переменную и операции вычитания.

Компилятор внедряет сведения о типе в исполняемый файл в качестве метаданных. Среда CLR использует эти метаданные во время выполнения для дальнейшего обеспечения безопасности типа при выделении и освобождении памяти.

Типы значений являются производными от System.ValueType, являющегося производным от System.Object. Типы, производные от System.ValueType, имеют особое поведение в среде CLR. Переменные типа значения напрямую содержат их значения, что означает, что память встроена в контекст, в котором объявлена переменная.Не существует отдельного размещения кучи или служебных данных сборки мусора для переменных типа значения.

Существует две категории типов значений: структура и перечисление.

Тип, определенный как классделегат, массив или интерфейс, является ссылочным типом. Во время выполнения при объявлении переменной ссылочного типа переменная содержит значение null до явного создания экземпляра объекта с помощью оператора new или назначения его объекту, который был создан в другом месте, с помощью new. Интерфейс должен быть инициализирован вместе с объектом класса, который его реализует.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]