Изучение проекта и заполнение его кодом

72

В данной статье речь пойдет о средствах, которые Visual Studio предлагает для оказания помощи с добавлением кода в проект.

Редактор с возможностью сворачивания блоков кода

Одним из замечательных средств Visual Studio является используемый по умолчанию редактор с возможностью сворачивания блоков кода.

Сворачивание позволяет сосредоточить внимание только на тех участках кода, которые представляют интерес, и скрывать те из них, которые в текущий момент не важны:

Редактор кода Visual Studio

Если способ разбиения кода на блоки не нравится, можно указать собственные сворачиваемые блоки с помощью директив препроцессора (#region и #endregion). Например, для обеспечения возможности сворачивания кода внутри метода Main() следует добавить эти директивы так, как показано на рисунке:

Добавление директив #region и #endregion

Редактор кода автоматически обнаружит директиву #region и разместит рядом с ней очередной знак "минус", предоставляя возможность сворачивать данный блок. Заключение блока кода в директивы #region и #endregion заставляет редактор кода свернуть его, а также снабдить любым желаемым комментарием в директиве #region. Компиляторы игнорируют эти директивы и компилируют метод Main() обычным образом:

Сворачивание кода, заключенного в директивы #region и #endregion

Помимо возможности сворачивать блоки кода, поставляемый в Visual Studio 2010 редактор кода поддерживает все функции редактора Visual Studio 6. В частности, в нем есть средство IntelliSense, которое позволяет не только экономить время при вводе кода, но и гарантировать правильность вводимых параметров.

Разработчики приложений на С++ заметят, что теперь средство IntelliSense стало совершеннее, чем в Visual Studio 6, и работает быстрее. По сравнению с Visual Studio 2005 оно также значительно улучшилось. Теперь IntelliSense стало более интеллектуальным, поскольку умеет запоминать предпочитаемые варианты и предлагать сначала их.

Вдобавок редактор кода Visual Studio 2010 позволяет выполнять некоторую синтаксическую проверку вводимого кода и выделяет подчеркиванием большинство синтаксических ошибок еще до компиляции кода. При наведении курсора мыши на подчеркнутый текст в редакторе появляется небольшое окошко с текстом, поясняющим, в чем состоит ошибка. Разработчикам приложений на Visual Basic эта функция, называемая отладкой на стадии проектирования, знакома на протяжении довольно многих лет, а теперь она стала доступной и разработчикам приложений на C# и С++.

Окно Design View

При разработке приложения с пользовательским интерфейсом, наподобие приложения Windows, библиотеки элементов управления Windows или приложения ASP.NET, нужно использовать окно Design View (Конструктор). В этом окне предлагается визуальное представление того, как будет выглядеть форма. Обычно окно Design View применяется в сочетании с еще одним окном, которое называется Toolbox (Панель инструментов). В этом окне отображается огромное количество компонентов .NET, которые можно перетаскивать в разрабатываемое приложение, как показано на рисунке:

Окно Toolbox

Количество компонентов, поставляемых для целей разработки в окне Toolbox, в Visual Studio 2010 значительно увеличилось. Доступные категории компонентов в этом окне в некоторой степени зависят от типа редактируемого проекта; например, при редактировании проекта WpfApplication из решения DemoSolution количество доступных категорий будет гораздо большим, чем при редактировании проекта ConsoleApplication. Ниже перечислены наиболее важные категории:

Data (Данные)

В эту категорию входят классы, которые позволяют подключаться к источникам данных и управлять содержащимися в них данными. В частности, здесь доступны компоненты для работы с Microsoft SQL Server, Oracle или любым другим источником данных OLE DB.

Common Controls (Общие элементы управления)

В эту категорию входят элементы управления Windows Forms и WPF, которые представляют собой классы, позволяющие визуализировать элементы вроде текстовых полей, окон списков или древовидных структур, предназначенных для работы с приложениями "толстых" клиентов.

Standard (Стандартные)

В эту категорию входят элементы управления Web Forms, представляющие собой классы, которые, по сути, делают то же самое, что и элементы управления Windows, но только работают в контексте веб-браузеров и предусматривают отправку HTML-вывода для имитации элементов управления в этих браузерах. (Увидеть их можно будет только при работе с приложениями ASP.NET.)

Components (Компоненты)

В этой категории предлагаются разнообразные классы .NET, позволяющие обеспечивать выполнение на машине разнообразных полезных задач, наподобие подключения к службам каталогов или журналу регистрации событий.

В окно Toolbox можно добавлять собственные специальные категории, щелкая правой кнопкой мыши на любой из категорий и выбирая в контекстном меню пункт Add Tab (Добавить вкладку). Кроме того, в окно Toolbox также можно помещать и другие элементы управления, выбирая в том же самом контекстном меню пункт Choose Items (Выбрать элементы). Это особенно удобно для добавления предпочитаемых компонентов СОМ и элементов управления ActiveX, которые по умолчанию в окне Toolbox не отображаются. После добавления элемент управления СОМ можно будет перетаскивать в проект точно так же, как и любой элемент управления .NET. В Visual Studio автоматически добавляется весь код, который требуется для обеспечения функциональной совместимости с элементом управления СОМ, чтобы он мог вызываться в проекте. В этом случае в проект добавляется элемент управления .NET, который Visual Studio создает "за кулисами", служащий оболочкой для элемента управления СОМ.

Окно Properties

Окно Properties (Свойства) тоже берет свое начало еще из старой IDE-среды Visual Basic. Как известно классы .NET могут реализовать свойства. На самом деле, базовые классы .NET, которые представляют формы и элементы управления, имеют множество свойств. Эти свойства определяют внешний вид и поведение, например, Width, Height, Enabled (указывающее, разрешен ли ввод в данном элементе управления) или Text (текст, отображаемый в данном элементе управления), и Visual Studio известно о многих из них. Окно Properties позволяет редактировать начальные значения большинства таких свойств для тех элементов управления, которые Visual Studio обнаруживает при чтении исходного кода:

Окно Properties

В окне Properties могут отображаться и события. Для просмотра событий выделите интересующий элемент управления в IDE-среде или выберите элемент в раскрывающемся списке в окне Properties, щелкнув на значке с изображением молнии в верхней части окна:

Окно Properties - события

Окно Class View

В отличие от окна Properties окно Class view (Классы) берет свое начало из сред разработки приложений на С++ (и J++). В Visual Studio оно в действительности представляет собой не самостоятельное окно, а скорее дополнительную вкладку в окне Solution Explorer. По умолчанию оно даже не появляется в окне Solution Explorer. Чтобы сделать его видимым, выберите в меню View (Вид) пункт Class View (Классы) или нажмите быструю комбинацию клавиш <Ctrl+Shift+C>. В этом окне отображается иерархия пространств имен и классов, которые присутствуют в исходном коде. Оно предоставляет древовидную структуру, разворачивая которую, можно просматривать классы, содержащиеся в пространствах имен, и элементы, предлагаемые классами:

Окно Class View

Замечательным свойством окна Class View является то, что в результате щелчка правой кнопкой мыши на имени любого элемента, к которому имеется доступ в исходном коде, будет появляться контекстное меню с пунктом Go То Definition (Перейти к определению). Выбор этого пункта позволяет перейти к тому месту программы в окне редактора кода, в котором находится определение данного элемента. Тот же результат можно получить, дважды щелкнув на элементе в окне Class View (или щелкнув правой кнопкой мыши на интересующем элементе в редакторе исходного кода и выбрав такой же пункт в контекстном меню). В этом контекстном меню также имеются пункты, позволяющие добавлять в класс поле, метод, свойство или индексатор. Это значит, что можно указать детали в диалоговом окне, а соответствующий код добавится автоматически. Для добавления полей и методов такой подход может оказаться не особенно полезным, поскольку добавить их в код несложно, однако для добавления свойств индексаторов он исключительно удобен и позволяет существенно сократить объем набираемого кода.

Пройди тесты
Лучший чат для C# программистов