C# имеет две разновидности типов: типы значений и ссылочные типы. Переменные, основанные на типах значений, содержат непосредственно значения. Переменные ссылочных типов сохраняют ссылки (адреса в специально выделенной памяти) на фактические данные. Таким образом, в переменной может храниться или значение, или объектная ссылка.
Для обозначения переменных используются идентификаторы: сочетание букв, цифр и знака подчеркивания, начинающееся с буквы.
В C# переменные объявляются с определенным типом данных.
Тип данных определяет место для хранения переменной, расположение, в котором будет выделена память для переменной во время выполнения программы, способ представления значения переменной в памяти, множество допустимых значений, а также набор операций, которые можно выполнять с этими данными.
Так как все переменные в C# являются объектами тех или иных классов или структур, то к сведениям, хранимым в типе, также относится базовый тип, которому он наследует, и содержащиеся в нем члены (методы, поля, события и т.д.).
В программах настоящего пособия будем использовать только переменные типа int (принимающие целые значения), double (вещественные значения), string (строка символов), char (отдельный символ) и bool (принимающие значения true (истина) или false (ложь)).
Переменные типа int, double, char, и bool являются экземплярами структур и относятся к типам значений. Переменная типа string является экземпляром класса и относится к ссылочным типам, т.е. переменная содержит адрес ячейки памяти, где размещается строка. К ссылочным типам относятся также массивы (см. гл. 3).
Более полное перечисление элементарных (встроенных) типов, к которым относятся и упомянутые выше типы, и характеристики типов см. в прил. 2.