|
Программирование >> Программирование с использованием ajax
Клиентское приложение для библиотеки классов Чтобы ничего не усложнять, можно добавить в содержащее библиотеку классов решение клиентское консольное приложение. Для этого щелкните правой кнопкой мыши на этом решении в окне Solution Explorer и выберите в контекстном меню пункт AddiNew Project (Добавить=>Новый проект). Называться новый проект должен ChlOCardClient. Для использования созданной ранее библиотеки классов в новом проекте консольного приложения добавьте в него ссылку на проект этой библиотеки классов, который называется ChlOCardLib. После создания проекта консольного приложения сделать это можно с помощью диалогового окна Add Reference (Добавление ссылки) и, в частности, доступной в нем вкладки Projects (Проекты), как показано на рис. 10.17. (Щам Rrtirtnct Project Nime Рис. 10.17. Добавлени£ ссылки на проект библиотеки классов с помощью вкладки Projects диалогового окна Add Reference На этой вкладке нужно выделить проект и щелкнуть на кнопке ОК, после чего ссылка будет добавлена. Поскольку новый проект был создан вторым, потребуется указать, что именно он является стартовым проектом в решении, т.е. должен запускаться при выполнении щелчка на кнопке Run (Выполнить). Для этого щелкните правой кнопкой мыши на имени этого проекта в окне Solution Explorer и выберите в контекстном меню пункт Set as Startup Project (Сделать стартовым проектом). Далее следует добавить код, использующий новые классы. Ничего особенного для этого не требуется, поэтому вполне подойдет и код, показанный ниже: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ChlOCardLib; namespace ChlOCardClient { class Classl static void Main(string[] args) { Deck xnyDeck = new Deck () ; myDeck.Shuffle О; for (int i = 0; i < 52; i++) Card ten5>Card = myDeck.GetCard(i) ; Console.Write(tempCard.ToString()); if (i != 51) Console.WriteC, ) ; else Console.WriteLine(); Console.ReadKey(); Ha рис. 10.18 можно видеть результат. I fli : /c:/в вvcsl rpch p мoл:h1oc rduьд:h1oc гdcll nlл)lfvoв*och1в
Tb. ftt. ol .lu . , Tb. Eiaht of Cluh ll S>-u>n of Di.inond , Ihe Nine uf , I .uc. ok H. ..r. TI Jack of I of SpjMlK.. 1Ы of Di..n...,d . Пи liu. of H...it . ГЬ.- Deui . of H-ari.. IIm- len of S.M.b- . The Thi-.e of Di-.n-.i,.! .. II,. Niu Six of Di. m>nd , II..- Фи.п ..f Suad. . Th. Qu.-. n ol H...ir , lb TI.. FoiiP of Di..n..nd . IW Flu. ofSpad.- . Tlu King of Club . T Ihp Deuc- of Club; . lb.- J. cli ..Г Hinrt . The S. v. n of H.-ari . ri. Hire.- nf Club , Thr Qu.-.-n of Club , The Ninr <.i il..). , The > P..UP ol Spad. . TIh lour uf Club . ll. J.kli ol Club . The Ki Kin<i of H.-..rt . TIm I IiIh of Diamond . П.. Deiicr of Dian..nd . П..- TIire> of - uadr.. Ни Nin< ol №-..r< , Г1.< S. u. n of Club nd . Tl SI- ol club . Tin J..cli of ivAf Tb. I i<ilil of H. .rt .n uf suadr . TI.. Qu. .n ol H.-..it Flu. of Spad. . TI.. King of Club Puc. 10.18. Клиентское консольное приложение Chi OCardClient в действии Этим результатом, как видно на рисунке, является тасование 52 игральных карт в колоде. В последующих главах вы продолжите разрабатывать и использовать данную библиотеку классов. Резюме В настоящей главе завершено рассмотрение способов определения базовых классов. Разумеется, еще осталось рассказать очень о многом, но те приемы, которые были описаны здесь, уже позволят создавать довольно сложные приложения. В этой главе были продемонстрированы как способы определения полей, методов и свойств, вместе с различными уровнями доступа и ключевыми словами-модификаторами, так и инструменты, которыми можно пользоваться для сборки структуры всего класса за вполовину меньшее время. Еще здесь детально рассматривалось поведение, связанное с наследованием, и, в частности, то, как можно скрывать ненужных унаследованных членов с помощью ключевого слова new и расширять члены базового класса вместо того, чтобы заменять их реализацию, с помощью ключевого слова base. Кроме того, здесь также рассказывалось об определении вложенных классов, об определении и реализации интерфейсов, как явно, так и неявно, и о том, как разбивать определения на несколько файлов кода за счет использования частичных классов и частичных методов. Напоследок для примера было приведено описание процесса разработки и применения простой библиотеки классов, представляющей колоду игральных карт, с использованием очень удобного инструмента Class Diagram (Диаграмма классов), который значительно упрощает дело. Данная библиотека будет еще не раз применяться и в последующих главах. В частности, в настоящей главе были освещены следующие вопросы. □ Способы определения полей, методов и свойств. □ Средства, доступные для организации класса по разделам. □ Дополнительные возможности, связанные с наследованием. □ Способы определения и реализации интерфейсов. □ Способы определения частичных классов и частичных методов. □ Процесс создания и развертывания простой библиотеки классов. В следующей главе речь пойдет о другом типе классов, а именно - о коллекциях, которые часто требуется применять при разработке приложений. Упражнения 1. Напишите код, определяющий базовый класс MyClass и виртуальный метод Gets tring. Этот метод должен возвращать строку, хранящуюся в защищенном поле myString, доступ к которому возможен только через предназначенное для записи public-свойство ContainedString. 2. Создайте производный от MyClass класс MyDerivedClass. Переопределите в нем метод Gets tring так, чтобы он возвращал строку из базового класса путем использования базовой реализации данного метода, но при этом прибавлял к ней текст (output from derived class) (вывод, полученный от производного класса). S. В определениях частичных методов должен обязательно использоваться только возвращаемый тип void. Объясните почему. 4. Напишите класс по имени MyCopyableClass, способный возвращать копию самого себя за счет применения метода Get С ору. Этот метод должен обязательно использовать метод MemberwiseClone, унаследованный от System.Object. Добавьте в этот класс простое свойство и напишите использующий этот класс клиентский код, удостоверившись в том, что он работает. 5. Напишите клиентское консольное приложение для библиотеки ChlOCardLib, вытягивающее сразу пять карт из перетасованной колоды (объекта Deck). В случае если все пять карт относятся к одной масти, это клиентское приложение должно отображать их названия на экране в месте с текстом Flush! (Флэш!); в противном случае оно должно прекращать свою работу после просмотра 50 карт вместе с текстом No flush (Нет флэша).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |