* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Классы и структуры
7 февраля 2009
На первый взгляд классы и структуры очень похожи: у тех и других могут быть чле- ны (например поля и методы), тем и другим требуется конструктор для создания экземпляров и, подобно всем типам NET Framework, они происходят от базового типа Object Ключевое отличие между ними в том, что классы — это ссылочные типы, а структуры являются типами значения. С точки зрения низкоуровневых ме- ханизмов это означает, что под экземпляры классов (объекты) память выделяется из кучи, а под экземпляры структур — из стека. Благодаря особенностям реализа- ции, доступ к стеку осуществляется быстро и просто, но в стек нельзя поместить много данных без риска снизить общую производительность приложения. На практике это означает, что структуры лучше применять для реализации про- стых небольших объектов, экземпляры которых содержат сравнительно немного данных, либо для хранения короткоживущих объектов. Классы же лучше подходят для объектов, которые содержат больше данных, либо должны храниться в памяти достаточно долгое время.
Резюме • К пользовательским типам относятся структуры и классы. У тех и других име- ются члены — поля, свойства, методы и события. Классы — это ссылочные типы, а структуры — типы значения. • Для создания классов в Visual Basic .NET применяют ключевое слово Class, а в С# — class. Для создания структур в Visual Basic .NET служит ключевое слово Structure, в С# для этой цели применяют ключевое слово struct. Как для классов, так и для структур разрешены вложенные типы. • Процедура объявления и создания экземпляров пользовательского типа не от- личается от таковой для предопределенных типов за исключением необходимо- сти использования ключевого слова New (new) для создания экземпляров пользо- вательских типов значений и ссылочных типов.