Помощь в написании студенческих работ
Антистрессовый сервис

Другие пользовательские типы

РефератПомощь в написанииУзнать стоимостьмоей работы

В качестве примера переопределения операции можно привести переопределение операции сложения: public static DateTime operator+(DateTime d, TimeSpan t). В структурах нельзя инициализировать поля при их объявлении, а также нельзя объявлять конструкторы без параметров. Структура — это частный случай классов, объекты которых хранятся в стеке, а не в куче, как у классов. Pts2 = pts1; Console… Читать ещё >

Другие пользовательские типы (реферат, курсовая, диплом, контрольная)

Классы являются основными пользовательскими типами. Но, кроме них, также активно используются такие пользовательские типы, как: структуры, перечисления и интерфейсы.

Структуры

Структура — это частный случай классов, объекты которых хранятся в стеке, а не в куче, как у классов.

Описание и использование структур

Объявление структуры выполняется аналогично объявлению класса:

[режим_доступа] [модификаторы]struct имя_структуры.

{.

// тело_структуры.

}.

В структурах нельзя инициализировать поля при их объявлении, а также нельзя объявлять конструкторы без параметров.

Для структур не может быть задан родительский тип (класс или структура), однако структура может наследовать интерфейсы. Кроме этого, для структур неприменим модификатор abstract.

Все, что может быть включено в класс, также может быть включено и в структуру: поля, методы и конструкторы. Аналогично классу структура может иметь статические и нестатические поля и методы, может иметь несколько конструкторов:

struct Points // структура описания точек.

{.

public float х, у;

public PointS (float хх, float уу) {х = хх; у = уу;}.

public override string ToString () {return «{Х:и + x + «,» + «Y:» + у +.

}.

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

Console.WriteLine («Присваивание значащего типа!»);

Points pts1 = new PointS (3, 5), pts2;

pts2 = pts1; Console. WriteLine («pts1:{0}; pts2=pt1:{1}», pts1, pts2); ptsl. x += 10; Console. WriteLine («pts1.x+=10:{0};pts2:{1}» Ipts1, pts2);

Console.WriteLine («Присваивание ссылочного типа!»);

Point pt1 = new Point (3, 5), pt2;

pt2 = pt1; Console. WriteLine («pt1:{0}; pt2=pt1: {1}», pt1, pt2);

pt1.x += 10; Console. WriteLine («pt1.x+=10:{0}; pt2: {1}», pt1, pt2);

При выборе между структурой и классом следует руководствоваться следующими правилами: если у класса число полей относительно невелико, а число возможных объектов относительно велико, делайте его структурой. В этом случае память объектам будет отводиться в стеке, не будут создаваться лишние ссылки, что позволит повысить эффективность работы.

Структуры описания временных данных

В пространстве имен System библиотеки FCL имеются встроенные структуры для работы с данными о времени, такие как DateTime и TimeSpan. Структура DateTime представляет момент времени, который обычно задастся в виде даты (год, месяц, день) и времени дня (часы, минуты, секунды). В данной структуре описано большое количество конструкторов, методов, свойств и операций. Примером конструктора является DateTime (int year, int month, int day). Например:

DateTime dTime = new DateTime (1980, 8, 15);

Часто используемым свойством является Now, которое возвращает текущее время, установленное на компьютере. Свойство DayOfWeek возвращает значение перечисления DayOfWeek.

В качестве примера переопределения операции можно привести переопределение операции сложения: public static DateTime operator+(DateTime d, TimeSpan t).

В данной операции используется еще одна структура TimeSpan, которая представляет интервал времени, обычно в днях, часах, минутах и секундах. Пример создания экземпляра интервала времени показан ниже:

//интервал времени в 17 дней, 4 часа, 2 минуты и 1 сек.

TimeSpan tSpan = new TimeSpan (17, 4, 2, 1);

В этом случае операция сложения может быть выполнена следующим выражением:

DateTime result = dTime + tSpan;

Результатом данного выражения будет момент времени 01.09.1980 4:02:01.

Показать весь текст
Заполнить форму текущей работой