Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Тема 2. Синтаксис языка программирования С#, встроенные типы данных

Синтаксические блоки

Для описания различных синтаксических конструкций будем использовать следующие обозначения: <словосочетание>

В этом месте должно находиться то, что указано словосочетанием. Английское слово, знаки препинания являются обязательными и используются без каких-либо изменений.

::= проговаривается как 'означает' или 'может быть'.

YYYopt Если нечто помечено индексом opt или [], то это может как быть, так и не быть, т.е. не является обязательным.

Например,

Оператор while::=

while (<Условие цикла>)

<Тело цикла>

 

где:

<Условие цикла>::= <Логическое выражение>

<Тело цикла>::= <Оператор>;

::= <Составной оператор>;

 

 

Алфавит языка программирования С#

Алфавит С# включает в себя:

1. Строчные и прописные буквы латинского алфавита.

2. Цифры от 0 до 9.

3. Символ _ (подчеркивание — также считается буквой);

4. Набор специальных символов: " { }, | [ ] + - %/ \; ':? < > =! & # *.

5. Прочие символы.

Алфавит С# служит для построения слов, которые в C# называются лексемами. Различают пять типов лексем:

Ø идентификаторы;

Ø ключевые слова;

Ø знаки (символы) операций;

Ø литералы;

Ø разделители.

Почти все типы лексем (кроме ключевых слов и идентификаторов) имеют собственные правила словообразования, включая собственные подмножества алфавита.

Лексемы отделяются друг от друга специальными символами - разделителями. Этой же цели служит множество пробельных символов, к числу которых относятся пробел, табуляция, символ новой строки и комментарии.

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

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.

Встроенные простые типы языка C#

Ключевое слово языка C# Тип.Net Вид значения Используемая память Диапазон
sbyte SByte Целое число   -128…127
byte Byte Целое число   0…255
short Int16 Целое число   -32768…32767
ushort UInt16 Целое число   0…65535
int Int32 Целое число   -231…231
uint UInt32 Целое число   0…232
long Int64 Целое число   -263…263
ulong UInt64 Целое число   0…264
char Char 1 символ   Все символы Unicode
float Single Числа с плавающей точкой   (+/-)1.5*10-45… (+/-) 3.4*1038, 7 разрядов
double Double Числа с плавающей точкой   (+/-)5*10-324… (+/-) 3.4*1030, 16 разрядов
decimal Decimal Числа с плавающей точкой повышенной точности   (+/-)1*10-28… (+/-) 7.9*1028, 30 разрядов
bool Boolean Логический   false, true
           

В дополнение к этим примитивным типам С# может иметь объекты типа enum и struct.

<== предыдущая лекция | следующая лекция ==>
Знакомство с .NET | Присваивание значений переменным
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 730; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.