Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_200309.doc
Скачиваний:
39
Добавлен:
24.12.2018
Размер:
4.38 Mб
Скачать

Идентификаторы

Имена считают идентификаторами. Имена служат для обозначения переменных, типов данных, функций. Часть идентификаторов С# входит в фиксированный словарь ключевых слов. Эти идентификаторы образуют подмножество ключевых слов (они так и называются ключевыми словами). Прочие идентификаторы после специального объявления становятся именами. Рассмотрим правила построения идентификаторов состоящих из букв алфавита:

  1. Первым символом идентификатора С# может быть только буква.

  2. Следующими символами идентификатора могут быть буквы, цифры и нижнее подчеркивание.

  3. Длина идентификатора не ограничена.

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

Типы данных языка программирования с#

С# является жестко типизированным языком. При его использовании необходимо объявлять тип каждого объекта, который создаете (например, целые числа, числа с плавающей точкой, строки, окна, кнопки и т.д.), а компилятор поможет избежать ошибок, связанных с присвоением переменным значений только того типа, который им соответствует. Тип объекта указывает компилятору размер объекта (например, объект типа int занимает в памяти 4 байта) и его свойства (например, форма может быть видима и невидима, и т.д.). При компиляции программы проходит обязательная проверка соответствия типов. Соответствие типов проверяется в трёх случаях:

  1. Присваивание. Например, чтобы нельзя было в целочисленную переменную записать дробную.

  2. При вычислении выражений компилятор автоматически приводит тип результата выражения к типу, требующему наибольшее количество памяти аргументов выражения. Например, 2+3*1.5=6.5

  3. При вызове методов.

Язык программирования C# подразделяет типы на два вида: встроенные типы, которые определены в языке, и определяемые пользователем типы, которые выбирает программист. С# также подразделяет типы на две другие категории: размерные и ссылочные. Основное различие между ними — это способ, с помощью которого их значения сохраняются в памяти. Размерные типы сохраняют свое фактическое значение в стеке. Ссылочные типы хранят в стеке лишь адрес объекта, а сам объект сохраняется в куче. Определим некоторые новые понятия.

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

Куча - это оперативная память компьютера. Доступ к ней осуществляется медленнее, чем к стеку. Когда объект располагается в куче, то переменная хранит лишь адрес объекта. Этот адрес хранится в стеке. По адресу программа имеет доступ к самому объекту, все данные которого сохраняются в общем куске памяти (куче).

Язык С# предоставляет программисту широкий спектр встроенных типов, которые соответствуют CLS (Common Language Specification) и отображаются на основные типы платформы .NET. Это гарантирует, что объекты, созданные на С#, могут успешно использоваться наряду с объектами, созданными на любом другом языке программирования, поддерживающем .NET CLS (например, VB.NET).

Каждый тип имеет строго заданный для него размер, который не может изменяться. Представленная ниже таблица 2.1. содержит список простых встроенных типов, предлагаемых С#. Простыми типами называются «примитивные» типы, принадлежащие к группе встроенных предопределённых типов C#. Каждый из типов характеризуется следующими признаками:

  1. Какие значения можно хранить в переменных данного типа.

  2. Диапазон значений.

  3. Объём используемой памяти (для представления одной переменной требуется от 8 до 128 бит).

  4. Типы операций, которые можно делать над переменными.

При выборе типа переменной необходимо заранее планировать, какие значения она может принимать, так как использование типов с недостаточным диапазоном может привести к порче данных, а использование типов с намного большим диапазоном требует значительного перерасхода памяти.

Таблица №.2.1.

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