1629295403-b876e2087bddebea4bc9666fb2377a02 (846199), страница 100
Текст из файла (страница 100)
Для поискаследует выбрать H e l p O S e a r c h для того, чтобы открыть вкладку S e a r c h . Но при вводеsorted в поле S e a r c h F o r полученные результаты оказываются не слишком полезными, так что лучше ввести collection classes.На рис. 21.13 показаны результаты поиска для "collection classes". Если вы максимизируете окно Help, то увидите несколько закладок справа от окна: Local Help, M S D NOnline, C o d e z o n e C o m m u n i t y и Questions. По умолчанию вы получаете результатыпоиска в локальных файлах.Puc.
21.13. Используйте полнотекстовый поиск, если вам не помогли ни контекстный поиск по <F1 >, ни предметный указательЕсли вы подключены к Интернету, справочная система вернет также темы, расположенные в других областях (если вы подключаетесь по телефонной линии, это будеточень медленный поиск). Щелкните на закладке справа для вывода этих тем. Local Helpобращается к файлам, хранящимся на вашем компьютере. M S D N Online обращаетсяк справочным ресурсам на сайте Microsoft Developer Network (MSDN). C o d e z o n e C o m munity обращается к множеству независимых сайтов, где вы часто можете найти дополнительную информацию и пообщаться с другими программистами на С# в форумах.
Закладка Q u e s t i o n s позволяет выполнить поиск в группах новостей, посвященных Х#и вопросам, связанным с .NET.(Чтобы получить советы о том, как составлять хорошие запросы, откройте справку,выберите H e l p ^ H e l p on Help, щелкните на T e c h n i q u e s for Locating Help, а затем наFull-Text Searches.)Глава 21. Использование интерфейса Visual Studio509Поиск может помочь найти класс или метод, который нужен вам для ваших целей, но при этом можно потратить много времени, продираясь через дебри ненужных тем.Такой широкий поиск, как "collection class", возвращает сотни возможных тем(максимальное количество выводимых в окне — 500), так что вы получаете их так же,как страницы с результатами поиска в Web.
Для перехода к следующей или предыдущейстранице результатов поиска щелкните на стрелке в правом верхнем углу Local Help навкладке S e a r c h . Большинство этих тем будут для вас бесполезны.Как и в случае предметного указателя, можно улучшить полнотекстовый поиск с помощью фильтра. Можно фильтровать поиск по языку, технологии (такой как .NET Windows Forms или Office Applications) и типу темы. На рис. 21.13 установлен весьма широкий тип тем: Articles and Overviews (статьи и обзоры), Contains Code (с содержанием исходных текстов), How-Tos (краткие инструкции), Knowledge Base (базы знаний), OtherDocumentation (прочая документация) и Syntax/API Reference (справка по синтакси- ]су/API). Указывая конкретный тип темы, вы можете существенно снизить количествомусора.
Кроме того, вы можете выполнить поиск локально на вашем компьютере идяглобально, в Web. (Чтобы получить дополнительную информацию о справке в Интернете, найдите в предметном указателе раздел "Help, online content".)Дополнительные возможностиКроме избранных тем, можно сохранить в Help Favorites и поиски. Выполните поиск,затем при активной вкладке S e a r c h щелкните на кнопке A d d to Help Favorites панели инструментов Help (пиктограмма в виде странички с желтым знаком "плюс"). Теперь, открывHelp Favorites, вы можете в любой момент повторить выполненный вами поиск.Обратите внимание на кнопку H o w Do I на панели инструментов на рис.
21.13. Этоновый справочный ресурс со ссылками на все виды тем "how-to".В качестве расширения меню Help Visual Studio 2005 предлагает новое меню Community, которое связывает ряд сетевых ресурсов и обеспечивает доступ к сообществупрограммистов на С# во всем мире. Слушайте профессионалов, задавайте вопросы и набирайтесь опыта...Попробуйте поиграться с окном D y n a m i c Help.
Оно предназначено для отражения контекста того, с чем вы работаете в данный момент — класс библиотеки .NET Framework, ключевое слово С# и так далее. Честно говоря, данное усовершенствование не такое уж и важное, хотя идея, конечно, привлекательная.Лично я считаю наиболее важными и полезными возможностями справочнойсистемы контекстную справку <F1> и предметный указатель. Старайтесь начинать с контекстной справки <F1>. Затем переходите к предметному указателю.Он напоминает предметный указатель книги.
Если же и здесь вы не получилипомощь, переходите к полнотекстовому поиску. Поиск похож... ну, на прогулку в Web, но не такую эффективную. И наконец, обратитесь к карте: вкладкесодержания. Содержание похоже на оглавление книги. Это неплохое место, если вы хотите получить не напоминание, а обзор на какую-то тему.510Часть VII. Дополнительные главыАвтоперечисление членов"Автоперечисление членов" в Visual Studio часто делает излишним обращение к меню Help. При вводе имени класса или метода Visual Studio пытается предоставить вамсправку на основании введенного во всплывающем окне.Автоперечисление можно отключить.
Выберите команду меню T o o l s ^ O p t i o n s .В окне Options щелкните на пункте T e x t Editor в левой панели и выберите команду All L a n g u a g e s ^ G e n e r a l . И наконец, проверьте установку флага Auto ListMembers.Чтобы увидеть, чем может помочь указанная возможность, рассмотрим знакомую ситуацию: я знаю, что класс коллекции некоторого типа хранит элементы в отсортированном порядке. Поскольку я знаю, что этот класс находится где-то в пространстве имен S y s t e m . C o l l e c t i o n s , следует поместить курсор на начало пустой строки в редакторе исходного текста и ввести n e w S y s t e m .
C o l l e c t i o n s . Как только будет введена точка в конце" C o l l e c t i o n s " , Visual Studio откроет меню, в котором перечислены все классы, составляющие пространство имен C o l l e c t i o n s . Это самый быстрый и простой вид помощи.Visual Studio перечисляет в данной ситуации только неабстрактные классы, поскольку только они могут быть инстанцированы с использованием ключевогослова n e w .
Подробнее об абстрактных и конкретных классах можно прочестьв главе 13, "Полиморфизм".В прокручиваемом списке возможных классов находится и класс S o r t e d L i s t . После выбора класса Visual Studio открывает его описание, как показано на рис. 21.14. Похоже, этот класс — именно то, что нужно.Рис. 21.14.
Автоперечисление —мощное подспорье в работе программистаГлава 21. Использование интерфейса Visual Studio511После того как вы нашли то, что искали,newSystem.Collections.SortedList.можноудалитьвременный текиПри нормальном течении событий при вводе реального кода автоперечисление является частью автозавершения, о котором подробно рассказывалось в главе 8, "Методыкласса".Программы в этой книге, не боясь этого слова, можно смело назвать безупречнымиНо это результат определенного труда — нетривиальные программы никогда не работают с первого раза (наверняка это следствие определения тривиальной программы как таковой, которая корректно работает сразу же после создания).Строгий синтаксис С# позволяет отловить массу ошибок. Например, пропущеннаяинициализация переменной перед ее использованием всегда была бичом для более ранних языков программирования.
Теперь в С# невозможно допустить такую ошибку, такак он отслеживает, когда и где переменной впервые присваивается значение, и где этапеременная применяется. Если ее использование предшествует инициализации, С# бьетколокола. (Говорю честно — я пытался, но никак не могу придумать трюк, как создатьпрограмму, использующую неинициализированную переменную.)Однако компилятор не в состоянии обнаружить все ошибки программиста (если быэто было так, программисты бы быстро удалили его со своих жестких дисков, чтобы неоставаться безработными). Всегда существует необходимость поиска и исправленияошибок времени выполнения.В коммерческом программном обеспечении ошибки времени выполнения часто именуют особенностями программы.В этом разделе содержится программа с массой "особенностей". Моя задача состоитв ее отладке с использованием инструментария, предоставляемого Visual Studio.Жучки в программе: а дустом не пробовали?В приведенной далее программе имеется ошибка (а может, и имеются).// VSDebug - э т а п р о г р а м м а и с п о л ь з у е т с я в к а ч е с т в е// демонстрационной для отладки; программа неработоспособна// ( и с п р а в л е н н а я в е р с и я программы — VSDebugFixed)usingSystem;usingSystem.Collections;u s i n g System.10;n a m e s p a c e VSDebug{classProgram{staticvoidMain(string[]args){//512Ядолженвставитьэтопредупреждение,чтобыЧасть VII.