Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник.docx
Скачиваний:
8
Добавлен:
07.11.2018
Размер:
124.2 Кб
Скачать

Простые типы данных.

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

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

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

Краткое имя

Тип

Размер (байт)

Диапазон (бит)

byte

Целое число без знака

8

От 0 до 255

sbyte

Целое число со знаком

8

От -128 до 127

int

Целое число со знаком

32

От -2 147 483 648 до 2 147 483 647

uint

Целое число без знака

32

От 0 до 4 294 967 295

short

Целое число со знаком

16

От -32 768 до 32 767

ushort

Целое число без знака

16

От 0 до 65 535

long

Целое число со знаком

64

От -922 337 203 685 477 508 до 922 337 203 685 477 507

ulong

Целое число без знака

64

От 0 до 18 446 744 073 709 551 615

float

Число одинарной точности с плавающей запятой

32

От -3,402 823e38 до 3,402 823e38

double

Число двойной точности с плавающей запятой

64

От -1,797 693 134 862 32e308 до 1,797 693 134 862 32e308

char

Одиночный знак Юникода

16

Знаки Юникода в тексте

bool

Логический тип

8

true или false

object

Базовый тип для всех остальных типов

string

Последовательность знаков

decimal

Точный дробный или целочисленный, который может представлять десятичные числа с 29 значащими цифрами.

128

От ±1,0 Ч 10e−28 до ±7,9 Ч 10e28