Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач.docx
Скачиваний:
12
Добавлен:
20.03.2016
Размер:
157.67 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬУО «Витебский государственный университет им. П.М. Машерова»

Кафедра информатики и информационных технологий

Курсовая работа

Использование общих типов при описании интерфейсов и делегатов на примерах задач поиска в массивах

Студентка 37 группы математического факультета Баранова А.И.

и ИТ Потапова Л.Е.

Работа защищена «__»________ 2015 года с оценкой «___»

Члены комиссии: _________________ _______________ (ФИО/подпись)

_________________ _______________ (ФИО/подпись)

Введение

Данная курсовая работа описывает использование общих типов при описании интерфейсов и делегатов в C# на примерах задач поиска в массивах.

Ранее мы изучали делегаты, интерфейсы, массивы, а так же подробно рассмотрели, что типы данных отличаются друг от друга и используются в той или иной ситуации.

Данную курсовую работу я хочу посвятить изучения того, как можно делегаты и интерфейсы использовать в одной программе, которая выполняет определенную задачу поиска в массивах.

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

Оглавление

Введение 1

Общие типы (GENERICS) 3

Типы интерфейсов 4

Типы делегатов 4

Встроенные типы данных 4

Преимущества использования общих типов 5

Интерфейсы в C# 6

Синтаксис интерфейса 6

Реализация интерфейса 7

Использование интерфейсных ссылок 7

Делегаты в C# 9

Описание делегатов 9

Использование делегатов 9

Массивы 11

Использование делегатов вместо интерфейсов 12

Практика 14

Программа 1 15

Программа 2 16

Заключение 18

Литература 19

Общие типы (generics)

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

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

CTS (общая система типов) представляет собой формальную спецификацию, в которой описано то, как должны быть определены типы для того, чтобы они могли обслуживаться в CLR-среде. Внутренние детали CTS обычно интересуют только тех, кто занимается разработкой инструментов и/или компиляторов для платформы .NET. Т.е. CTS описывает не просто примитивные типы данных, а целую развитую иерархию типов, включающую хорошо определенные точки, в которых код может определять свои собственные типы. Иерархическая структура общей системы типов (CTS) отражает объектно-ориентированную методологию одиночного наследования IL.

Типы интерфейсов

Интерфейсы представляют собой не более чем просто именованную коллекцию определений абстрактных членов, которые могут поддерживаться (т.е. реализоваться) в данном классе или структуре. В C# типы интерфейсов определяются с помощью ключевого слова interface, как показано ниже:

// Объявление интерфейса

public interface ICommandSource

{ void CommandParameter(); }

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]