Улучшения Intellisense в VS 2010 (из серии статей про VS 2010 и .NET 4.0)

Это десятая из серии статей, в которых я пишу о готовящихся к выходу 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)

оригинал статьи