Основными элементами языка программирования являются типы данных, переменные, выражения, операторы и методы.
Типы данных
Язык C# является строго типизированным языком. Это означает, что все данные (константы и переменные), с которыми работает программа, имеют явно или неявно заданный тип. Под типом данных понимается набор доступных значений, которые может хранить переменная данного типа, и разрешенный набор операций над этими значениями.
Система типов языка С#
В языке C# различает две категории типов данных: значащие типы (value types) и ссылочные типы (reference types). Основное различие между ними состоит в том, что значащие типы хранят непосредственно свои значения, а ссылочные типы непосредственно хранят ссылки на свои значения. К значащим типам относятся:
- • встроенные типы (описанные в библиотеке FCL), которые хранят одиночные значения, как например: int — целые; float — вещественные значения; bool — логические;
- • структуры — сложные типы (описаны в разд. 6.1), которые во многом сходны с классами, но значения которых хранятся в стеке (см. разд. 3.1.2).
К ссылочным типам относятся классы, объекты которых хранятся в куче (см. разд. 3.1.2). С учетом вышесказанного структура типов языка C# показана на рис. 3.1.
Все типы языка C# также делятся на две большие группы: встроенные и описываемые разработчиками.
Встроенные (или фундаментальные) тины изначально принадлежат базисной системе типов, поддерживаемой средой CLR. Но в разных языках программирования эти типы могут иметь свои собственные имена. В .NET в соответствии со стандартом общих типов (Common Type Standard — CTS) имеется 15 встроенных типов (табл. 3.1).
Тины, описываемые разработчиками. Кроме встроенных типов, которые предоставляются в языке С#, программист может описывать и использовать свои собственные (пользовательские) типы. Имеются следующие пользовательские типы:
- 1) классы (class), см. разд. 4;
- 2) структуры (struct), см. разд. 6.1;
- 3) перечисления (enum), см. разд. 6.2;
- 4) интерфейсы (interface), см. разд. 6.3;
- 5) делегаты (delegate), см. разд. 4.10.1.
Рис. 3.1. Структура типов языка C#.
Пользовательские типы создаются разработчиками и составляют саму программу. После того как в программе сделано описание типа, можно создавать и использовать объекты данного типа, точно так же, как если бы они были встроенными типами.