* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Типы значений и ссылочные типы
7 февраля 2009

Как говорилось ранее, в .NET Framework две разновидности типов: ссылочные типы
(reference types) и типы значений (value types). Основное различие между ними за-
ключается в способе доступа к переменным, объявленным с этими типами. Чтобы
разобраться в сути этого различия, необходимо кратко пояснить основы динами-
ческого использования памяти.
Занимаемая приложением память складывается из двух основных компонентов:
стека (stack) и кучи (heap). Стек — это область памяти, резервируемая для исполне-
ния программы. Стек напоминает стопку тарелок: если нужна чистая тарелка, бе-
рут тарелку из стопки (то есть ту, которую положили последней). С переменными
программы происходит то же самое: при вызове функции все объявленные в ней
переменные заталкиваются в стек (эта операция называется push); если эта функ-
ция вызовет другую функцию, то все переменные, объявленные новой функцией,
тоже попадут в стек. Когда функция, вызванная последней, завершится, ее пере-
менные выходят из области видимости (scope) программы и выталкиваются из сте-
ка (эта операция называется pop); в результате память, занимаемая этими перемен-
ными, освобождается, и выполнение программы продолжается.
Куча — отдельная область памяти, резервируемая для создания объектов, кото-
рые предназначены для многократного использования. CLR выделяет в куче па-
мять под объекты и управляет утилизацией памяти, занятой неиспользуемыми
объектами, посредством механизма под названием сбор мусора.

Теги: .NET

Статьи по теме:

Boost – версия 1.36.0
Применение типов .NET Framework в приложениях
Оповещение пользователя об ошибках ввода
Parsing Expression Grammar Support for C# 3.0 Part 1 – PEG Lib and Parser Generator
Модификаторы доступа к членам
Создание компонента DoughnutMachine
Стандартная система типов CTS
Распространение приложений через Интернет
Работа с мастером Data Form
Применение трассировочных переключателей
Редакторы свойств программы установки
Автоматизация разработки
Активация и деактивация команд меню
Создание дополнительных типов объектов Doughnut
Реализация полиморфизма через наследование
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30


     



Данный сайт или домен продается

© 2009 Seoliga.ru | .NET | Типы значений и ссылочные типы. Регион сайта: Москва и Санкт-Петербург