Перенос логики создания персон в класс «PersonList»
Модернизируем наш проект. Сделаем так, чтобы «люди» создавались не в форме (при загрузке формы в событии «form_load»), а в специально предназначенном для этих целей классе «PersonList». Данный класс и создавался для того, что содержать в себе всю «логику» (программный код) по «работе с людьми» (создание новых, изменение существующих, удаление из списка и т.д.). Для этого необходимо перейти в класс «PersonList», который находится в проекте «PersonLibrary». Этот класс необходимо сделать «public» (открытым), так как он нам понадобится для вызова из другого проекта («PersonWindows»). Также этот класс необходимо наследовать от встроенного класса «List<>». Класс «List<>» является встроенной коллекцией языка программирования C#. Данная коллекция может содержать любые классы. В нашем случае будет содержать классы «PersonInfo» (то есть «коллекция персон»). Наследование предполагает, что все свойства, которые заложены в классе «List<>» перейдут к классу «PersonList». Таким образом «PersonList», хотя еще и не содержит ни какого кода, будет содержать много различных свойств и метод «наследованных» от класса «List<>» (например «Add» или «Remove»). Код наследования показан на рисунке 1.
Рис. 1 Класс «PersonList» - наследование
Далее добавим метод (функцию) с названием «GetDefaultPersonList» (англ. получить список персон по умолчанию). Этот метод будет открытым «public» (так как будет вызываться из других форм и проектов), будет статическим «static» (назначение этого поля разъяснит преподаватель), и будет возвращать коллекцию людей «PersonList» (вместо ключевого слова «void», которое означает, что метод ничего не возвращает). Метод «GetDefaultPersonList» показан на рисунке 2.
Рис. 2 Добавление метода «GetDefaultPersonList»
Так как метод «GetDefaultPersonList» должен вернуть класс «PersonList», то сразу необходимо внести в метод следующий код. Здесь создается экземпляр класса «PersonList» с названием «myList», который ниже возвращается. Для возвращения используется ключевое слово «return». Таким образом, данный метод при вызове создаст новый пустой класс «PersonList» и сразу вернет его (туда откуда этот метод будет вызван). Код показан на рисунке 3.
Рис. 3 Метод возвращает коллекцию «PersonList»
Далее сделаем так, чтобы возвращалась не пустая коллекция людей, а заполненная. Для этого необходимо перейти в форму «PersonForm» в проекте «PersonWindows». В форме перейти к событию «form_load», где создаются персоны (товарищ Владимир Быстров и товарищ Игорь Семшов). Весь код в событии «form_load» (рисунок 4) необходимо перенести в метод «GetDefaultPersonList» класса «PersonList».
Рис. 4 Перенос кода по созданию персон из формы в класс
Таким образом в событии «form_load» на форме «PersonForm» должна остаться пустота, а в классе «PersonList» перед словом «return» добавиться код по созданию персон (товарищ Владимир Быстров и товарищ Игорь Семшов). Только необходимо заменить в добавленном коде слово «_personList» (так коллекция называлась на форме, и подчеркивается как ошибка при добавлении кода в метод «GetDefaultPersonList») на «myList». Код метода «GetDefaultPersonList» показан на рисунке 5.
Рис. 5 Создание персон в методе «GetDefaultPersonList» класса «PersonList»
Теперь класс «PersonList» полностью готов, и его можно закрыть. Проверь на ошибки (проект «PersonLibrary» «постройте» - англ. «build»). Если есть ошибки, попросите помощь преподавателя.
Далее модернизируем код на форме «PersonForm» в проекте «PersonWindows». Необходимо внести изменения в метод загрузки персон. Этот метод называется «Refresh». Сначала необходимо переименовать этот метод на «RefreshPersonList» (обновление списка персон). После переименования просмотрите код формы и где вызывается метод «Refresh» замените на вызов метода «RefreshPersonList» (в кнопках 1 и 2).
Далее в метод «RefreshPersonList» необходимо внести изменения. Теперь коллекция персон будет вызываться из класса «PersonList». Код показан на рисунке 6.
Рис. 6 Изменения в методе «Refresh»
Можно запустить и проверь как работает проект. Результат будет тот же самый, только теперь персоны будут создаваться не на самой форме, а в классе «PersonList».
Запуск формы показан на рисунке 7. Обратите внимание, что теперь кнопка «Добавить» работать не будет (так и задумано в данной лабораторной работе).
Рис. 7
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.