- •Введение
- •Оглавление
- •Общие типы (generics)
- •Типы интерфейсов
- •Типы делегатов
- •Встроенные типы данных
- •Преимущества использования общих типов
- •Интерфейсы вC# Синтаксис интерфейса
- •Реализация интерфейса
- •Использование интерфейсных ссылок
- •Делегаты в c#
- •Описание делегатов
- •Использование делегатов
- •Массивы
- •Использование делегатов вместо интерфейсов
- •Практика
- •Программа 1
- •Программа 2
- •Заключение
- •Литература
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬУО «Витебский государственный университет им. П.М. Машерова» |
Кафедра информатики и информационных технологий |
Курсовая работа |
Использование общих типов при описании интерфейсов и делегатов на примерах задач поиска в массивах |
|
Студентка 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(); }
Сами по себе интерфейсы мало чем полезны. Однако когда они реализуются в классах или структурах уникальным образом, они позволяют получать доступ к дополнительным функциональным возможностям за счет добавления просто ссылки на них в полиморфной форме.