Программирование на языке C#
Download 1.19 Mb. Pdf ko'rish
|
Программирование на языке C#
12.
Структуры Структура – это собственный тип данных, по назначению, способу реализации и использования очень напоминающий классы, но имеющий ряд специфических особенностей (различий): 1. Самое главное отличие заключается в том, что класс относится к ссылочному типу данных, а структура относится к типу значения. Хранить и обращаться к данным по значению оказывается быстрее, чем по ссылке (когда на доступ к объекту вынужденно используются дополнительные вычислительные ресурсы и оперативная память). Однако при передаче структуры в функцию происходит копирование всех данных (в отличие от передачи экземпляра класса, когда копируется только адрес). Таким образом, структуры рекомендуется использовать для небольших типов данных (объектов), редко передаваемых в функции сами по себе (имеется ввиду, при явном их указании в качестве аргумента функции). 2. При объявлении структуры используется ключевое слово struct : struct structName { // объявления членов } 3. В структуре не поддерживается переопределение конструктора по умолчанию, т.е. следующий код вызовет ошибку: struct Book { Book() { } } 94 4. В структурах нельзя инициализировать переменные в месте их объявления, т.е. следующий код вызовет ошибку: struct Book{ public string name = "Война и мир"; } 5. Структуры не поддерживают наследование (их нельзя наследовать от других структур (или классов) или использовать в качестве базовых для других структур или классов). Однако в структуре можно реализовать один или более интерфейс (для описания обязательных для реализации функций): interface IBook{ void Show (); } struct Book : IBook { public string name; public void Show(){ Console.WriteLine(name); } } 6. При использовании оператора new для создания объекта (экземпляра) структуры вызывается конструктор по умолчанию, т.е. следующие два оператора идентичны: Book book; Book book = new Book(); В приведенном ниже примере использования структур создается три объекта Book , при этом для первой и третьей книги вызывается конструктор по умолчанию, а потом задается имя книги. Для второй книги вызывается конструктор с одним аргументом. После инициализации названия всех книг выводятся в консоль с помощью вызова функции Show . struct Book { public string name; public Book(string name) { this.name = name; } public void Show() { Console.WriteLine(name); } } static void Main(string[] args) { Book book1; book1.name = "Преступление и наказание "; Book book2 = new Book("Война и мир"); 95 Book book3 = new Book(); book3.name = "Собачье сердце"; book1.Show(); book2.Show(); book3.Show(); } Очень часто структуры используются для группировки данных в классах, например, для хранения времени, выражаемого в виде некоторого количества секунд, минут и часов: struct Time { public int hours, minutes, seconds; } class WorkingTime { private Time currentTime; public WorkingTime(int h, int m, int s) { this.currentTime.hours = h; this.currentTime.minutes = m; this.currentTime.seconds = s; } } Download 1.19 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling