10) Отличия ________________________________________ Структуры и классы отличаются следующими особенностями. • Структуры являются типами значений; классы — ссылочными типами.Переменная типа структуры, в отличие от типа класса, содержит данные структуры, а не ссылки на данные. • Структуры используют выделенную память стека; классы — память кучи. • Все элементы структ��ры по умолчанию являются Public; переменные и константы класса по умолчанию — Private, а другие элементы класса по умолчанию являются Public.Такое поведение элементов класса обеспечивает совместимость с системой значений по умолчанию Visual Basic 6.0. • Структуры должны иметь хотя бы одну переменную или элемент события без общего доступа; класс может быть совершенно пустым. • Элементы структуры не могут быть объявлены как Protected; члены класса могут. • Процедура структуры может обрабатывать событие, только если она является процедурой Shared (Visual Basic)Sub, и только с помощью оператора Оператор AddHandler; любая процедура класса может обработать событие, используя либо ключевое слово Предложение Handles (Visual Basic), либо оператор AddHandler.Дополнительные сведения см. в разделе События (Visual Basic). • В объявлениях переменных структуры не могут быть заданы инициализаторы или исходные размеры массивов, но это возможно в объявлениях переменных класса. • Структуры неявно наследуют от класса System.ValueType и не могут наследовать ни от какого другой типа; классы могут наследовать от любых классов, отличных от System.ValueType. • Структуры не наследуются; классы наследуются. • Структуры никогда не завершаются, т. е. среда CLR никогда не вызывает метод Finalize для структур; классы завершаются при помощи сборщика мусора, который вызывает метод Finalize для класса, когда обнаруживает, что не осталось активных ссылок. • Для структуры не требуется конструктор; для класса требуется. • Структуры могут иметь конструкторы, не являющиеся общими, только если они принимают параметры; классы могут иметь их как с параметрами, так и без. Каждая структура имеет неявный открытый конструктор без параметров.Этот конструктор инициализирует все элементы данных структуры с их значениями по умолчанию.Это поведение переопределить невозможно.
Hosted by uCoz