Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Типы, характеризуемые значениями, и ссылочные типы: заключительные замечания
Типы, характеризуемые значениями, и ссылочные типы: заключительные замечания
Чтобы завершить обсуждение данной темы, изучите информацию табл. 3.8, в которой приводится краткая сводка основных отличий между типами, характеризуемыми значением, и ссылочными типами.
Таблица 3.8. Сравнение типов, характеризуемых значением, и ссылочных типов
Вопрос | Тип, характеризуемый значением | Ссылочный тип |
---|---|---|
Где размещается тип? | В стеке | В управляемой динамический памяти |
Как представляется переменная? | В виде локальной копии | В виде ссылки на место в памяти, занятое соответствующим экземпляром |
Что является базовым типом? | Оказывается производным от System.ValueType | Может получаться из любого типа, (кроме System.ValueType), не являющегося изолированным (подробности в главе 4) |
Может ли тип быть базовым для других типов? | Нет. Типы, характеризуемые значениями, всегда изолированы и не могут быть расширены | Да. Если тип не изолирован, он может быть базовым для других типов |
Каким является поведение, принятое по умолчанию при передаче параметров? | Переменные передаются по значению (т.е. вызванной функции передается копия переменной) | Переменные передаются по ссылке (например, в вызванную функцию передается адрес переменной) |
Может ли тип переопределить System.Object.Finalize()? | Нет. Типы, характеризуемые значениями, никогда не размещаются в динамической памяти и поэтому не требуют финализации | Да, неявно (подробности в главе 4) |
Можно ли определить конструкторы для этого типа? | Да, но конструктор, заданный по умолчанию, является зарезервированным (т.е., другие конструкторы обязательно должны иметь аргументы) | Безусловно! |
Когда переменные данного типа прекращают свое существование? | Когда они оказываются вне контекста определения | Когда для управляемой динамической памяти выполняется сборка мусора |
Несмотря на указанные отличия, и типы, характеризуемые значением, и ссылочные типы могут реализовывать интерфейсы и поддерживать любое число полей, методов, перегруженных операций, констант, свойств и событий.
Оглавление статьи/книги
Похожие страницы
- Типы, характеризуемые значениями, и ссылочные типы
- Типы данных для работы с датой и временем
- Большие целые типы
- Типы страниц и их использование
- 1.2.3. Константы, переменные и типы
- 4. Лекция: Типы данных
- 9.1. Классы и прототипы
- 4. Кортежи. Типы кортежей
- 5. Отношения. Типы отношений
- 1. Базовые типы данных
- 1. Различные типы и кратности связей
- 1.7 Иерархия драйверов систем хранения и типы драйверов