Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2018-01-29 | 262 |
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. Структура может реализовать один или несколько интерфейсов.
|
|
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!