История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2018-01-29 | 259 |
5.00
из
|
Заказать работу |
|
|
Структуры. Создание структуры. Работа со структурами
Классы — это ссылочные типы. Это означает, что к объектам классов доступ осуществляется через ссылку. Этим они отличаются от типов значений, к которым в С# реализован прямой доступ. Но иногда желательно получать прямой доступ и к объектам, как в случае нессылочных типов. Одна из причин для этого — эффективность. Ведь очевидно, что доступ к объектам классов через ссылки увеличивает расходы системных ресурсов, в том числе и памяти. Даже для очень маленьких объектов требуются существенные объемы памяти. Для компенсации упомянутых расходов времени и пространства в С# предусмотрены структуры. Структура подобна классу, но она относится к типу значений, а не к ссылочным типам.
Структура – это пользовательский тип, поддерживающий всю функциональность класса, кроме наследования. Тип структуры, определенный в языке C#, в простейшем случае позволяет инкапсулировать несколько полей различных типов. Но элементами структуры в C# могут быть не только поля, а и методы, свойства, события, константы.
Структуры объявляются с использованием ключевого слова struct и синтаксически подобны классам. Формат записи структуры таков:
struct Имя_структуры
{
public Тип поле_1;
public Тип поле_2;
...
public Тип поле_n;
//конструктор с параметром:
public Имя_структуры (Список_параметров)
{
//тело конструктора (операторы)
}
//Методы:
public Тип_возвращаемого_знач Имя_метода_1(Список_параметров)
{
//тело метода (операторы)
}
...
public Тип_возвращаемого_знач Имя_метода_n(Список_параметров)
{
//тело метода (операторы)
}
//События
// …
} //Конец структуры
При описании полей структуры следует учитывать, что они не могут инициализироваться при объявлении. Как и класс, структура может содержать конструкторы. Однако в структуре можно объявить только пользовательский конструктор с параметрами.
|
Структуры объявляются с помощью ключевого слова struct на глобальном уровне (до функции Main() или в отдельном файле).
Рассмотрим пример использования структуры для хранения информации о книге.
// Демонстрация использования структуры.
using System;
{
class StructDemo
{
// Определение структуры
struct Book
{
public string author;
public string title;
public int pages;
public string izdat;
// Пользовательский конструктор с параметрами:
public Book(string a, string t, int p, string iz)
{
author = a;
title = t;
pages=p;
izdat=iz;
}
// Метод, который выводит содержимое структуры на экран:
public void Show()
{
Console.WriteLine(“Автор ” + author + “, заголовок “ + title + “, издательство “ + izdat + “, количество страниц ” + pages);
}
}
// Демонстрируем использование структуры Book:
public static void Main()
{
Book bookl = new Book("Герберт Шилдт", "Полный справочник по C#",, 748, "Санкт-Питербург - Москва – Киев изд. дом «Вильямс»");
// Вызов явно заданного конструктора.
bookl. Show();
Book book2 = new Book(); // Вызов конструктора по умолчанию.
book2. Show();
Book bоокЗ; // Создание объекта без вызова конструктора.
book3. Show();
Console.WriteLine();
If (book3.title == null)
Console.WriteLine("Член " + book3.title" + " содержит null.");
// Следует явно задать значения полей структуры book3.
book3. author= "Э. Троелсен";
book3. title= "Язык программирования С# 2005 и платформа.NET";
book3. izdat="Санкт-Питербург - Москва – Киев изд. дом «Вильямс»";
book3. pages=1168;
book3. Show();
}
}
}
Массив структур
Элементами одномерного массива могут быть и структуры. Рассмотрим создание массива структур Book.
int i,n;
Console. WriteLine(“Введите количество книг”);
n = Int32. Parse(Console.ReadLine());
Book [ ] mas = new Book [n];
for (i = 0; i < mas. Length; i+ +)
{
Console. WriteLine(“Введи информацию об ” + i + “ книге!”);
Console. Write (“Автор? ”);
mas [i]. author = Console.ReadLine();
Console. WriteLine();
Console. Write (“Заголовок? ”);
mas [i]. title = Console.ReadLine();
Console. WriteLine();
Console. Write (“Издательство? ”);
mas [i]. izdat = Console.ReadLine();
|
Console. WriteLine();
Console. Write (“Количество страниц? ”);
mas [i]. pages = Console.ReadLine();
Console. WriteLine();
}
Console. WriteLine(“Содержимое массива:”);
for (i = 0; i < n; i + +)
mas[i]. Show();
Одну структуру можно присваивать другой: book2= book3;, при этом создается копия объекта-структуры.
Структуры не могут наследовать другие структуры или классы. Структуры не могут использоваться в качестве базовых для других структур или классов. Однако, подобно другим С#-типам, структуры наследуют класс Оbject. Структура может реализовать один или несколько интерфейсов.
|
|
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!