Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Это десятая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.
Сегодня я расскажу о некоторых небольших, но очень приятных улучшениях в работе intellisense в VS 2010, а именно об улучшенной фильтрации названий типов/методов/свойств для автозавершения. Это позволит вам проще находить и использовать различные API по мере написания кода.
Intellisense в VS 2008
Чтобы помочь продемонстрировать вам улучшения в intellisense, сделанные в VS 2010, давайте начнем с простого сценария в VS 2008, где мы хотим написать какой-то код для возможности редактирования данных с использованием элемента управления GridView.
Мы могли бы начать с ввода “GridView1.Edit”, чтобы появилось окно intellisense, где мы просмотрели бы доступные для этого элемента методы и свойства, связанные с редактированием (edit). Если проделать это в VS 2008, то появится окно intellisense, в котором курсор переместится на к членам GridView, чьи названия начинаются со слова “Edit”:
Это здорово в том случае, если название метода/свойства/события, с которым мы хотим работать, начинается со слова “Edit”, но это не особо поможет нам, если оно начинается с чего-либо другого (например, событие “RowEditing” или вспомогательный метод “SetEditRow()”). Нам придется либо вручную прокрутить список вверх или вниз в поиске других элементов, либо вообще воспользоваться для поиска обозревателем объектов или справочной системой.
Intellisense в VS 2010
Теперь опробуем тот же самый сценарий в VS 2010. Здесь, когда мы напечатаем “GridView1.Edit”, то в окне intellisense, увидим, что по умолчанию все так же выбирается свойство EditIndex. Однако, на этот раз мы увидим отфильтрованный список методов/свойств/событий, в чьих названиях слово “Edit” встречается в любом месте:
За счет этого вы можете быстро увидеть все связанные с редактированием методы/свойства/события и быстрее найти то, что вам нужно.
Поиск по ключевым словам
Новый механизм фильтрации intellisense в VS 2010 может оказаться полезным для поиска любого метода/свойства/события, независимо от того, с какого слова начинается их название. К примеру, если вы хотите включить возможность вывода данных grid'а на несколько страниц, но не помните точно, как это делается, вы можете просто набрать “GridView1.Paging”, и в окне intellisence автоматически будут выведены лишь те названия, в которые входит слово “paging”. Обратите внимание, что у класса GridView на самом деле нет ни одного члена, чье название начиналось бы со слова “Paging”, но, тем не менее, я смог найти два члена, относящиеся к выводу информации на нескольких страницах:
Поиск типов
Новый механизм фильтрации intellisense в VS 2010 также может оказаться полезным для быстрого поиска классов и типов. Например, когда мы печатаем “List” для объявления переменной, редактор кода предлагает нам список типов и классов, автоматически отфильтрованный по наличию слова “List” где-либо в их названии (включая IList<> и SortedList<>, которые не начинаются с List):
За счет этого вы сможете намного проще находить названия типов, которые помните не полностью, без необходимости прибегать к их поиску в обозревателе объектов и/или справочной системе.
Поддержка “PascalCase” в Intellisense
Названия типов/методов/свойств в .NET Framework используют соглашение под названием “PascalCase” – это значит, что первая буква каждого слова в них делается заглавной (например, PageIndexChanged).
Механизм фильтрации intellisense в VS 2010 теперь позволяет воспользоваться этим обстоятельством для быстрого поиска и фильтрации названий типов и членов по шаблону их имен, определяемому “PascalCase”. Например, если вы напечатаете “GridView1.PIC”, то VS 2010 покажет вам не только члены GridView, в чьих именах встречается PIC, но и те, в чьих названиях слова, выделенные в соответствии с “PascalCase”, начинаются с этих букв в указанной последовательности:
Обратите внимание, как на рисунке выше напечатанное “PIC” привело к появлению в списке выбора “PageIndexChanged” и “PageIndexChanging”. Таким образом, вы можете сэкономить несколько нажатий клавиш при поиске нужных типов или методов/свойств/событий.
Резюме
Думаю, вы согласитесь, что новый подход к фильтрации списка имен в intellisense, используемый в VS 2010, намного упрощает при написании вашего кода поиск и использование классов и их членов. Вы можете воспользоваться преимуществами нового механизма фильтрации intellisense и в VB, и в C#.
Надеюсь, вы нашли для себя что-то полезное,
Скотт
P.S. В последнее время я чаще использую Twitter, чтобы рассказывать о предстоящих планах и публиковать ссылки на интересные ресурсы. Вы можете следить за моими публикациями на Twitter по адресу: https://www.twitter.com/scottgu (@scottgu это мой ник на Twitter)