Книга: C# для профессионалов. Том II

Типы данных значений и ссылочные типы данных

Типы данных значений и ссылочные типы данных

В Visual Basic существует четкое различие между типами данных значений и ссылочными типами данных. Типы данных значений включают большинство предопределенных типов данных: Integer, Single, Double и даже Variant (хотя строго говоря Variant может содержать также ссылку). Ссылочными типами данных являются любые объекты, включая определяемые модули классов и объекты ActiveX. Как можно было заметить из примеров в этом приложении, C# также делает различие между типами данных значений и ссылочными типами данных. Однако C# допускает больше гибкости, позволяя при определении класса найти, что этот класс будет типом данных значений. Это делается с помощью объявления класса структурой (struct). В той степени, насколько это касается C#, структура является по сути специальным типом класса, который представляется как значение, а не как ссылка. Накладные расходы, связанные с созданием экземпляров структур и их разрушением при завершении с ними работы меньше, чем связанные с созданием экземпляров и разрушением классов. Однако C# ограничивает свойства структур. В частности, нельзя выводить классы или другие структуры из структур. Причина этого состоит в том, что структуры предназначены для использования в качестве динамичных, простых объектов, для которых наследование в действительности не подходит. Фактически все предопределенные классы в C# — int, long, float, double являются на самом деле структурами .NET, вот почему на них можно вызывать такие методы, как ToString(). Тип данных string является, однако, ссылочным типом и поэтому в действительности является классом.

Оглавление книги


Генерация: 3.158. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз