Стандартные интерфейсы IEnumerable и IEnumerator
Для циклического обращения к элементам коллекции зачастую проще (да и лучше) организовать цикл foreach, чем пользоваться непосредственно методами интерфейса IEnumerator. Тем не менее ясное представление о принципе действия подобных интерфейсов важно иметь по еще одной причине: если требуется создать класс, содержащий объекты, перечисляемые в цикле foreach, то в этом классе следует реализовать интерфейсы IEnumerator и IEnumerable. Иными словами, для того чтобы обратиться к объекту определяемого пользователем класса в цикле foreach, необходимо реализовать интерфейсы IEnumerator и IEnumerable в их обобщенной или необобщенной форме. Правда, сделать это будет нетрудно, поскольку оба интерфейса не очень велики.
IEnumerator предоставляет возможность выполнить перебор элементов коллекции, предоставлять свойство Current и MoveNext и метод Reset.
Current – получает текущий элемент в коллекции.
MoveNext – перемещает перечислитель к следующему элементу коллекции.
Reset() – устанавливает перечислитель в его начальное положение, т. е. перед первым элементом коллекции.
Пример:
Класс MyInt реализует интерфейсы IEnumerator и IEnumerable.
class MyInt : IEnumerable, IEnumerator
{
int[] ints = { 12, 13, 1, 4 };
int index = -1;
// Реализуем интерейс IEnumerable
public IEnumerator GetEnumerator() { return this; }
// Реализуем интерфейс IEnumerator
public bool MoveNext()
{
if (index == ints.Length - 1)
{
Reset(); return false;
}
index++;
return true;
}
public void Reset()
{ index = -1; }
public object Current
{
get { return ints[index]; }
}
}
class Program
{
static void Main()
{
MyInt mi = new MyInt();
foreach (int i in mi) Console.Write(i+"\t");
Console.ReadLine();
}
}
Контрольные вопросы:
1.Каким количеством классов может быть реализован интерфейс?
2.Может ли класс реализовывать множественные интерфейсы?
3.Необходима ли реализация методов интерфейса в классе, включающем этот интерфейс?
4.Какой модификатор доступа соответствует интерфейсу?
5.Допустимо ли явное указание модификатора доступа для интерфейса?
Тема 10. Объектно-ориентированное программирование Windows-приложений на основе WindowsForms
Лекция 27-28. Библиотеки классов реализации функциональных
возможностей Windows
План:
1.Формы
2.Solution Explorer
3.Class View
4.Properties Window
5.Toolbox
6.Компиляция программы
7.События в Windows-приложениях
7.1.События мыши
Формы
Всякий раз, когда вы работаете с какой-либо программой, вы видите на экране прямоугольное окно. В этом окне и располагается вся информация, которая вам нужна. Формы могут иметь стандартный вид, такой, например, как у программы Microsoft Word, или причудливый — как у Winamp.
Форма — это экранный объект, обеспечивающий функциональность программы.
Мы с вами приступаем к созданию Windows-приложений, поэтому первое, чему нам предстоит научиться, — создавать проекты, которые будут содержать наши собственные формы.
Запускаем Visual Studio .NET, выбираем File/New/Project — появляется диалоговое окно (Ctrl+Shift+N приводит к тому же результату), в котором выбираем Visual C# Project и Windows Application (см. рисунок 10.1).
Рисунок 10.1 – Создание нового Windows-приложения
В поле Name задаем имя проекта — FirstForm и сохраняем его в папку, определяемую полем Location. Полученную папку вы сможете впоследствии переместить на другой компьютер и продолжить работу — в ней будут находиться все создаваемые нами файлы этого проекта. На экране появилась пустая Windows-форма.
После того как мы создали новый проект, можно видеть основные части среды разработки как показано на рисунке 4.2
Рисунок 10.2 – Основные части среды разработки Windows-приложения
Solution Explorer
Окно Solution Explorer (проводник проекта, View —> Solution Explorer, или сочетание клавиш Ctrl+Alt +L) содержит компоненты, входящие в состав проекта. Пункты контекстного меню этого окна (вызывающегося нажатием правой кнопки мыши) позволяют изменять содержимое проекта, а также добавлять новые компоненты (см. рисунок 4.3)
Рисунок 10.3 – Окно Solution Explorer
При создании нового проекта Solution Explorer содержит компоненты, созданные шаблоном.
Папка References содержит ссылки на классы, используемые в проекте по умолчанию. Двойной щелчок мыши на подпапках References запускает окно Object Browser (проводник объектов, View —> Object Browser, или сочетание клавиш Ctrl+Alt+J). Окно Object Browser, в свою очередь, является исчерпывающим средством получения информации о свойствах объектов, как абстрактный класс brush наследуется от классаSystem.MarshalByRefObject и содержит методы Clone, Dispose(bool), Dispose и Finalize (см. рисунок 4.4).
Рисунок 10.4 – Окно Object Browser
Можно получать краткое описание любого метода, класса или свойства, просто щелкнув на нем, — на информационной панели немедленно отобразится краткая справка. Для опытного разработчика Object Browser — незаменимый помощник в работе, гораздо более удобный, чем справка.
Файл App.ico содержит изображение иконки, которое на форме расположено в верхнем левом углу. Более подробно о создании и редактировании иконок — в конце этой лекции.
Файл AssemblyInfo.cs содержит информацию о вашем приложении. При создании дистрибутива (установочного пакета) в этот файл помещается информация программы, используемая в технических целях, а также цифровой ключ.
Class View
Окно Class View — (обзор классов, View —> Class View, или сочетание клавиш Ctrl+Shift+C), позволяет перемещаться в коде по выбранному объекту; содержит методы, классы, данные всего листинга проекта. Для перехода, например, в метод Main щелкаем на соответствующем названии в окне Class View (см. рисунок 10.5).
Рисунок 10.5 – Окно Class View
Properties Window
Окно свойств Properties — основной инструмент настройки формы и ее компонентов. Содержимое этого окна представляет собой весь список свойств выбранного в данный момент компонента или формы. Вызывается это окно несколькими способами — в меню View выбираем пункт Properties Window (или используем клавишу F4), на выбранном объекте щелкаем правой кнопкой мыши и в контекстном меню пункт Properties выбираем объект и нажимаем F4 или просто выбираем объект и переходим в окно Properties. Когда вы только создали проект, в окне Properties отображаются свойства самой формы (см. рисунок 10.6).
Рисунок 10.6 – Окно свойств Properties
В таблице 10.1 приводится описание интерфейса самого окна Properties.
Таблица 10.1 – Елементы окна Properties
Элемент | Изображение | Описание |
Object name | В поле этого списка выводится название данного выбранного объекта, который является экземпляром какого-либо класса. Здесь Form1 — название формы по умолчанию, которая наследуется от класса System.Windows.Forms.Form | |
Categorized | При нажатии на эту кнопку производится сортировка свойств выбранного объекта по категориям. Можно закрывать категорию, уменьшая число видимых элементов. Когда категория скрыта, вы видите знак (+), когда раскрыта — (–) | |
Alphabetic | Сортировка свойств и событий объекта в алфавитном порядке | |
Properties | При нажатии на эту кнопку отображается перечисление свойств объекта | |
Events | При нажатии на эту кнопку отображается перечисление событий объекта | |
Description Pane | Панель, на которую выводится информация о выбранном свойстве. В данном случае в списке свойств формы было выбрано свойство Text |
Окно Properties позволяет определять в первую очередь дизайн формы и ее элементов управления. В приложении 12 приводится описание некоторых свойств формы, обычно определяемых в режиме дизайна. При выборе значения свойства, отличного от принятого по умолчанию, оно выделяется жирным шрифтом, что облегчает в дальнейшем определение изменений.
Кнопка окна свойств Events (События) переключает окно Properties в режим управления обработчиками различных событий (например, мыши, клавиатуры) и одновременно выводит список всех событий компонента. Двойной щелчок мыши в поле значения события генерирует обработчик для него и переключает в режим кода.
Toolbox
Окно Toolbox (панель инструментов, View —> Toolbox, или сочетание клавиш Ctrl+Alt+X) содержит компоненты Windows-форм, называемые также элементами управления, которые размещаются на форме. Оно состоит из нескольких закладок: My User Controls, Components, Data, Windows Forms и General.
Наиболее часто употребляемой закладкой является Windows Forms. Для размещения нужного элемента управления достаточно просто щелкнуть на нем в окне Toolbox или, ухватив, перетащить его на форму ( см. рисунок 10.7)
Рисунок 10.7 – Окно Toolbox
Закладка My User Controls позволяет хранить собственные списки элементов управления — если вы наиболее часто используете лишь несколько из них, пожалуй, имеет смысл перетащить на эту закладку нужные элементы. Или создать свою собственную закладку.
Если в результате всех экспериментов вы обнаружите, что текущий вид окна Toolbox сильно отличается от первоначального, для восстановления значений по умолчанию выберите в контекстном меню любой закладки пункт Add/Remove Items… . В появившемся окне нажмите на кнопку Reset. Появляется окно предупреждения — "Настройки Toolbox будут восстановлены. Все пользовательские закладки будут удалены. Продолжать?" Согласившись с предупреждением, вы увидите вид Toolbox по умолчанию.
Все закладки, кроме Clipboard Ring и General, содержат компоненты, которые можно перетащить на форму. Закладка Clipboard Ring представляет собой аналог буфера обмена в Microsoft Office 2003, отображающего содержимое буфера за несколько операций копирования или вырезания. Для вставки фрагмента достаточно дважды щелкнуть по нему.
Дата добавления: 2015-10-26; просмотров: 2203;