1629295403-b876e2087bddebea4bc9666fb2377a02 (846199), страница 97
Текст из файла (страница 97)
Ссылки, добавленные в ваш проект, соответствуют вашим директивам u s i n g (включая некоторые "предположения" по умолчанию,которые могут не оправдаться для вашей программы; их можно удалить, если они вам ненужны). В окне также перечислены: исходный файл по умолчанию P r o g r a m , cs и прочиеисходные файлы, которые вы добавляете в проект в процессе работы. (Эти файлы немногоотличаются для графических программ Windows, как вы могли видеть при создании программы, описанной в главе 1, "Создание вашей первой Windows-программы на С#".)Глава 21. Использование интерфейса Visual Studio495Двойной щелчок на файле в окне Solution E x p l o r e r приводит к открытию окна дмего редактирования (если редактирование файла возможно). Файл P r o g r a m , cs содержит трамплин программы на С# — функцию M a i n ( ) .
Конечно, большинство програшв этой книге написаны непосредственно в одном этом файле. В предыдущих версияVisual Studio файл P r o g r a m , cs назывался C l a s s l . c s , что заставляло всякий раз егопереименовывать. P r o g r a m , с s — вполне приличное название, в переименовании ненуждающееся.В больших проектах файлы могут быть размещены в большем количестве подкаталогов. Щелкните правой кнопкой мыши в окне Solution Explorer и выберитев меню команду A d d ^ N e w Folder. Перетащите файлы во вновь созданную папку. Visual Studio сам разберется, что к чему, и где лежат нужные файлы.В ы можете редактировать файл A s s e m b l y l n f о .
c s , снабжая вашу программутакими свойствами, как ее название и название компании, торговая марка и номерверсии. Не стоит тратить время на эти свойства, следует только сказать, что это всего л и ш ь простой текстовый файл. Эти свойства появляются на вкладке V e r s i o n inf o r m a t i o n ( В е р с и я ) окна свойств . ЕХЕ-файла, открывающегося при щелчке правойкнопкой м ы ш и на файле в Проводнике Windows и выборе из раскрывающегося меню команды P r o p e r t i e s .Вы можете добавить в проект файлы любого вида.
Обычно я храню здесь электронную таблицу или текстовый файл для собственных примечаний. Щелкните правой кнопкой мыши на проекте в окне Solution E x p l o r e r и выберите команду меню Add^ExistingItem. Выберите добавляемый файл.Свойства проектаЩелкните правой кнопкой мыши на имени проекта в окне Solution Explorerи выберите команду Properties, чтобы открыть диалоговое окно свойств проекта. Здесь можно обновить ряд настроек проекта.
Многие категории в окнеProperties имеют имена, которые вполне проясняют их предназначение, но вывсегда можете обратиться к справочному материалу: поищите раздел "projectproperties" в справочной системе. Одна из наиболее полезных вкладок окнаProperties — вкладкаSettings.Определитевашисобственныенастройки:только для чтения — Application и для чтения и записи — U s e r — и вы сможете обратиться к ним из своей программы следующим образом:// Эту с т р о к у надо д о б а в и т ь в р а з д е л u s i n gu s i n g MyAppName. P r o p e r t i e s ,//. .
. затем где угодно в вашей программе напишите//вроде:// дляstringчто-тополучения значения настройки только для чтения:myString=Settings.Default.MyAppSetting;// для установки значения настройки для чтения и записи:Settings.Default.MyUserSetting = myUserString;// Доступ к р е с у р с а м о с у щ е с т в л я е т с я п р а к т и ч е с к и т а к жеТаким образом, оказывается очень просто сохранить пользовательские настройки безнеобходимости управления ими самостоятельно с помощью классов S y s t e m . 10, описанных в главе 19, "Работа с файлами и библиотеками". В завершенной программе, ко-496Часть VII.
Дополнительные главыторую вы распространяете, пользовательские настройки хранятся в персональных областях Application Data каждого пользователя. (Эта папка является частью персональногопрофиля каждого пользователя и обычно хранится в папке С : \ D o c u m e n t s a n d S e t t i n g s \ < u s e r n a m e > . ) Чтобы сохранить измененные настройки, вызовите в вашей программе S e t t i n g s . D e f a u l t .
S a v e ( ) (например, в конце функции M a i n ( ) или когдавы закрываете W i n d o w s F o r m ) . Сохраненные настройки загружаются автоматическипри новом запуске приложения.Навигация по исходному текстуВ больших программах достаточно трудно переходить от работы над методомА класса В к работе над методом С класса D. Вы можете найти определенныйкласс или метод путем открытия файла для редактирования и просмотра егосодержимого или воспользоваться возможностью C l a s s V i e w , что значительнобыстрее — особенно в больших проектах.В Solution E x p l o r e r вы должны дважды щелкнуть на файле для того, чтобы открытьего, а затем прокрутить его или воспользоваться средствами поиска для того, чтобы найти искомый метод. Вы можете также применить два раскрывающихся списка поверх каждого окна редактора для поиска класса и его методов в текущем файле.
Левый раскрывающийся список содержит классы текущего файла, а правый — члены выбранногокласса. Я часто пользуюсь этими списками, но все же лично мне больше нравится использовать C l a s s View.C l a s s V i e w рассматривает программу не как множество файлов, а как множествоклассов и их членов, что позволяет данному средству быть незаменимым помощникомпри навигации по проекту. Щелкните на классе в верхней панели для того, чтобы увидеть список его членов (с сигнатурами параметров) в нижней панели. Это очень полезно — иметь возможность быстро вспомнить об аргументах и типе возвращаемого значения метода.
Вернитесь к рис. 21.7, на котором показан результат двойного щелчка наклассе U n i v e r s i t y в окне C l a s s V i e w — открыт соответствующий исходный файл;двойной щелчок на методе E n r o l l () показывает этот член в открытом исходном файле. (Посредством правого щелчка на классе в окне C l a s s V i e w отображается раскрывающееся меню с некоторыми интересными возможностями.)Держите окна Solution Explorer и C l a s s V i e w в закрепленном наложенном состоянии, чтобы быстро переключаться между ними с помощью одного щелчкана вкладке.Добавление классаРазмещать каждый класс в отдельном файле, да еще так, чтобы имя файла совпадалос именем класса — хорошая программистская привычка. Подклассы могут находитьсялибо в своих собственных файлах, либо в файле базового класса, в зависимости от того,насколько тесно они связаны друг с другом.Классы S c h o o l и S t u d e n t определенно следует разместить в разных файлах.
Точнотак же нужно разделить классы H i g h S c h o o l , U n i v e r s i t y и S c h o o l , поскольку концептуально они достаточно далеки друг от друга. Вместе в одном файле лучше разместить классы наподобие L e s s e r C a n a d i a n G o o s e и G r e a t e r C a n a d i a n G o o s e .Глава 21. Использование интерфейса Visual Studio497Рис. 21.9. Добавление нового класса в проект с использованием окнаAdd New ItemДля того чтобы добавить класс U n i v e r s i t y в программу V S I n t e r f а с е , выполните следующие шаги.1.
Щелкните правой кнопкой м ы ш и на имени проекта V S I n t e r f а с е в окнеSolution Explorer, а затем выберите команду меню AddAdd New Item.В появившемся окне вам будет предложена масса шаблонов объектов на выбор.Их слишком много, чтобы поместиться на одном рисунке!2. Выберите Class, введите University.
cs в поле Name в нижней части окна и затем щелкните на кнопке O p e n .На рис. 21.9 показано окно Add N e w Item с выбранным шаблоном C l a s s .Содержимое нового исходного файла U n i v e r s i t y . cs выглядит очень похожена содержимое файла P r o g r a m , c s , который строится по умолчанию при создании новой программы.3. Повторите процесс для класса Student. После этого проект будет содержать файлы Student.cs и University.cs наряду с Program.cs.Вернитесь к рис.
21.8, на котором показан результат выполнения указанных шагов. Три исходных файла представлены вкладками в окне редактирования.Завершение демонстрационной программыДанная версия класса S t u d e n t создает и выводит, информацию о студенте,состоящую из идентификатора и имени.// V S I n t e r f а с е - файл S t u d e n t .
c s// S t u d e n t - м о д е л и р о в а н и е с т у д е н т а ,// н а п и с а т ь с в о е имяusingSystem;namespaceVSInterface498которыйвсостояниисам///<summary>/// S t u d e n t - учащийся школы///</summary>publicclassStudent{privatestringsStudentName;private int nID;publicStudent(stringsStudentName,intnID){this.sStudentNamethis.nID = nID;=sStudentName;}///<summary>/// Name - имя у ч а щ е г о с я///</summary>p u b l i c s t r i n g Name { g e t {///<summary>/// T o S t r i n g - в о з в р а щ а е т///</summary>publicoverridestringreturnимяиsStudentName;}}идентификаторToString(){returnString.Format("{0}({l})",sStudentName,nID);}}Конструктор класса S t u d e n t получает имя и идентификатор студента. МетодT o S t r i n g ( ) перекрывает версию базового класса п о умолчанию O b j e c t .Эта пользовательская версия возвращает имя студента и его идентификатор вскобках.