Имя Пароль
Зарегистрироваться


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



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

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

Теги: .NET

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

Активация и деактивация команд меню
Работа с несколькими результирующими наборами
Реализация членов интерфейса на Visual Basic .NET
Защита приложений
Реализация метода RemoveStale
Применение компонента HelpProvider
Реализация полиморфизма через наследование
Декларативная защита, основанная на ролях
Использование отладочных инструментов
Операторы Imports и using
Замещение членов базового класса в Visual Basic .NET
CBitmapEx – C++-класс для работы с BMP
Доступ к «плоским» файлам
Решения .NET
Оповещение пользователя об ошибках ввода
| .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 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

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