Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
|
из
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. Структура может реализовать один или несколько интерфейсов.
|
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!