Программирование >>  Обработка исключительных ситуаций 

1 ... 6 7 8 [ 9 ] 10 11 12 ... 142


/ты данных

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

внутреннее представление данных, а следовательно, и множество их возможных значений;

допустимые действия над данными (операции и функции).

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

ждое выражение в программе имеет определенный тип. Величин, не имеющих какого типа, не существует. Компилятор использует информацию о типе при оверке допустимости описанных в программе действий.

1мять, в которой хранятся данные во время выполнения программы, делится две области: стек (stack) и динамическая область, или хип (heap) . Стек ис-льзуется для хранения величин, память под которые выделяет компилятор, в динамической области память резервируется и освобождается во время вы-шнения программы с помощью специальных команд. Основным местом для мнения данных в С# является хип.

лассификация типов

юбая информация легче усваивается, если она разложена по полочкам . По-ому, прежде чем перейти к изучению конкретных типов языка С#, рассмотрим i классификацию. Типы можно классифицировать по разным признакам.

ели принять за основу строение элемента, все типы можно разделить на простые ie имеют внутренней структуры) и структурированные (состоят из элементов эугих типов). По своему создателю типы можно разделить на встроенные

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

Me того, в языке есть еще одна разновидность комментариев, которые начи-!тся с трех подряд идущих символов косой черты ( /). Они предназначены формирования документации к программе в формате XML. Компилятор лекает эти комментарии из программы, проверяет их соответствие правилам шисывает их в отдельный файл. Правила задания комментариев этого вида рассмотрим в главе 15.



(стандартные) и определяемые программистом (рис. 2.1). Для данных статического типа память выделяется в момент объявления, при этом ее требуемый объем известен. Для данных динамического типа размер данных в момент объявления может быть неизвестен, и память под них выделяется по запросу в процессе выполнения программы.


Рис. 2.1 . Различные классификации типов данных С#

Встроенные типы

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

Встроенные типы С# приведены в табл. 2.5. Они однозначно соответствуют стандартным классам библиотеки .NET, определенным в пространстве имен System Как видно из таблицы, существуют несколько вариантов представления целы? и вещественных величин. Программист выбирает тип каждой величины, исполь зуемой в программе, с учетом необходимого ему диапазона и точности представ ления данных.

Целые типы, а также символьный, вещественные и финансовый типы можн объединить под названием арифметических типов.

Внутреннее представление величины целого типа - целое число в двоично коде. В знаковых типах старший бит числа интерпретируется как знаковый (О положительное число, 1 - отрицательное). Отрицательные числа чаще все представляются в так называемом дополнительном коде. Для преобразован! числа в дополнительный код все разряды числа, за исключением знаковог иинертируются, затем к числу прибавляется единица, и знаковому биту то/ присваивается единица. Беззнаковые типы позволяют представлять тольк положительные числа, поскольку старший разряд рассматривается как част! кода числа.



i. Встроенные типы С#

Ключевое Тип .NET слово

Диапазон значений Описание

Размер, битов

тип bool [ sbyte

byte short ushort int uint long

ulong й char

ые1 float double

й decimal string

object

Boolean SByte

Byte

Intl6

UIntl6

Int32

UInt32

Int64

UInt64 Char

Single

Double

Decimal

String

Object

true, false От-128 до 127 От 0 до 255 От -32 768 до 32 767

От 0 до 65 535

От -2 109 до 2 109

От 0 до 4 10

От -9 х 1018 до 9 1018

От 0 до 18

1018

От U+0000

до U+ffff

10 45

От 1.5 до 3.4

От 5.0 до 1.7

От 1.0 до 7.9

1038

10324 10308

10~28

1028

Длина ограничена объемом доступной памяти

Можно хранить все что угодно

Со знаком Без знака Со знаком Без знака Со знаком Без знака Со знаком

Без знака

Unicode-символ

7 цифр

64 16

15-16 цифр 64

28-29 цифр 128

Строка из Unicode-символов

Всеобщий предок

ЧИЕ-

под величину отведено я двоичных разрядов, то в ней можно представить 2 1чных сочетаний нулей и единиц. Если старший бит отведен под знак, то диа-

1 возможных значений величины - [-2 ,2- - 1], а если все разряды исполь-ся для представления значения, диапазон смещается в область положительных 1 и равен [0, 2 - 1] (см. табл. 2.5).

ные типы, или типы данных с плавающей точкой, хранятся в памяти а иначе, чем целочисленные. Внутреннее представление вещественного гит из двух частей - мантиссы и порядка, каждая часть имеет знак. Дли-ы определяет точность числа, а длина порядка - его диапазон. В первом ши это можно представить себе так: например, для числа 0,381 10

ственных и финансового типов в таблице приведены абсолютные величины ных и максимальных значений.



1 ... 6 7 8 [ 9 ] 10 11 12 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика