Пользовательские типы данных

Содержание

Слайд 2

Практическая работа. Пример №2

Протестируйте пример программы, в котором приводится использование перечисления Month

Практическая работа. Пример №2 Протестируйте пример программы, в котором приводится использование перечисления
для определения количества дней в месяце.

Слайд 3

Пользовательские типы данных

Структуры

Пользовательские типы данных Структуры

Слайд 4

Что представляет собой структура?

Структура, которая подобна классу, но относится к типу значения

Что представляет собой структура? Структура, которая подобна классу, но относится к типу
(value type), а не к ссылочному типу данных (reference type).
Структуры отличаются от классов:
как они сохраняются в памяти и как к ним осуществляется доступ (классы — это ссылочные типы, размещаемые в куче, структуры — типы значений, размещаемые в стеке);
свойствами (например, структуры не поддерживают наследование).

Слайд 5

Как и у классов, у каждой структуры имеются свои члены: методы, поля,

Как и у классов, у каждой структуры имеются свои члены: методы, поля,
свойства, операторные методы и события.
В структурах допускается также определять конструкторы, но не деструкторы. В то же время для структуры нельзя определить конструктор, используемый по умолчанию (т.е. конструктор без параметров). Потому, что конструктор, вызываемый по умолчанию, определяется для всех структур автоматически и не подлежит изменению. Такой конструктор инициализирует поля структуры значениями, задаваемыми по умолчанию.
Структуры не поддерживают наследование, соответственно их члены нельзя указывать как abstract, virtual или protected.

Слайд 6

Объект структуры может быть создан с помощью оператора new таким же образом, как и

Объект структуры может быть создан с помощью оператора new таким же образом,
объект класса, но в этом нет необходимости. Оператор new вызывает конструктор, используемый по умолчанию.
Если оператор new не используется, объект все равно создается, хотя и не инициализируется. В этом случае инициализация членов структуры выполняется вручную.

Слайд 7

Назначение структур

Часто, при написании программ, которые содержат разнообразные данные, возникает необходимость группирования

Назначение структур Часто, при написании программ, которые содержат разнообразные данные, возникает необходимость
этих данных по некоторому критерию.
Такое группирование улучшает наглядность программного кода, которое в свою очередь приводит к уменьшению ошибок и повышения производительности работы программиста.
Доступ к сгруппированным данным упрощает использование имен в программе. Данные группируются соответственно проблемной области, для которой разрабатывается программа.
В языке программирования C#, с целью удобного группирования данных, используются структуры.
Использование структуры в программе происходит в 2 этапа:
объявление типа структуры;
объявление структурной переменной.

Слайд 8

Общая форма объявления типа структуры:

struct имя_типа_структуры : интерфейсы
{
// объявление членов

Общая форма объявления типа структуры: struct имя_типа_структуры : интерфейсы { // объявление
и методов структуры
}
имя_типа_структуры – название структурного типа на основе которого будут объявляться объекты (переменные, экземпляры структуры);
интерфейсы – список интерфейсов, методы которых нужно реализовать в теле структуры.

При объявлении используется ключевое слово struct вместо class

Слайд 9

Пример объявления структуры, которая описывает запись в телефонном справочнике:

struct Telephone
{
public string

Пример объявления структуры, которая описывает запись в телефонном справочнике: struct Telephone {
number; // номер телефона
public string name; // имя абонента
public string surname; // фамилия абонента
public string address; // адрес
public int code; // почтовый код
}

Слайд 10

Пример объявления, инициализации и использования структурной переменной типа Telephone

// Объявление структурной переменной с

Пример объявления, инициализации и использования структурной переменной типа Telephone // Объявление структурной
именем T1 типа Telephone
Telephone T1;
// заполнение полей структурной переменной T1
T1.name = “Иванов";
T1.surname = «Иван";
T1.number = «77058085423";
T1.code = 640712402120;
T1.address = «Уральск";