Открытие и запуск программы в Visual Basic .NET
Аннотация: В этой лекции вы изучите основные команды меню и способы программирования в Visual Studio; откроете и запустите простую программу на Visual Basic; измените настройки программирования; попрактикуетесь в перетаскивании, изменении размера и закреплении окон инструментов
В этой лекции вы узнаете, как:
- запускать Microsoft Visual Studio .NET;
- использовать среду разработки Visual Studio;
- открыть и запустить программу на Visual Basic;
- настроить свойства среды;
- перемещать, изменять размер и закреплять окна инструментов или делать их всплывающими;
- использовать справочную систему и завершать работу в Visual Studio.
Microsoft Visual Basic . NET — это обновленная и расширенная версия популярной системы разработки Visual Basic , с которой работают более 3 миллионов программистов по всему миру. В этой лекции рассказано о нововведениях в Visual Basic . NET и об основных приемах быстрой и эффективной работы с программами в этой среде. Эту лекцию следует прочитать и новичкам в программировании на Visual Basic , и тем, кто уже работает с более ранними версиями этого пакета. Основное преимущество Visual Basic . NET заключается в том, что он помогает сделать вашу работу еще более эффективной — особенно если вы используете информацию из баз данных, или создаете решения для сети Интернет . Кроме того, научившись свободно ориентироваться в среде разработки Visual Studio , вы сможете использовать те же самые инструменты для написания программ в Microsoft Visual C++. NET , Microsoft Visual C# . NET , а также компиляторы и инструменты третьих фирм.
В этой лекции вы узнаете, как запустить Visual Basic и как в интегрированной среде разработки открыть и запустить простую программу. Вы изучите основные команды меню и способы программирования в Visual Studio ; откроете и запустите простую программу на Visual Basic , которая называется МузВопрос; измените настройки программирования; попрактикуетесь в перетаскивании, изменении размера и закреплении окон инструментов. Вы также узнаете, как получить дополнительную информацию с помощью справочной системы и как корректно завершить работу в среде разработки.
Что нового в Visual Basic .NET?
Переход с Visual Basic 6 на Visual Basic . NET — дело не очень простое. В нем появились новые возможности, а некоторые знакомые инструменты изменились. По этой причине каждая лекция начинается с врезки с описанием изменений. Для изучения Visual Basic . NET с помощью этой книги вам не требуется иметь какой-либо опыт программирования. Для тех, кто уже знает Visual Basic 6, ниже перечислены некоторые усовершенствования в Visual Basic . NET .
Теперь Visual Basic — полноправная часть Visual Studio . Для Microsoft Visual C++ . NET , Microsoft Visual C# . NET и Visual Basic используется одна и та же общая среда разработки , а также общие инструменты.
- В Visual Studio появилась новая панель Start Page (Начальная страница). На ней показываются недавно использовавшиеся проекты, с нее можно открывать новые или существующие исходные файлы. Дополнительные ссылки на панели Start Page (Начальная страница) предоставляют доступ к веб-сайтам о Visual Studio и к сообществам разработчиков.
- Среда разработки Visual Studio содержит несколько новых инструментов программирования, а уже имевшиеся средства были доработаны. Окно Project (Проект) теперь называется Solution Explorer (Обозреватель решений), появилось окно контекстной справки, по имени Dynamic Help (Динамическая справка). Несколько изменилась и панель инструментов Toolbox (Область элементов). Она теперь разделена на несколько функциональных категорий: элементы Windows Forms, элементы Web Forms и Data (Данные).
- Большинство окон инструментов имеют функцию автоматического сворачивания окна инструмента — когда он не используется, он скрывается с экрана.
- Проекты теперь сохраняются по-другому. Имя проекту вы присваиваете перед его созданием. Сами проекты разделены на несколько файлов и папок — их еще больше, чем в Visual Basic 6. В Visual Basic 6 программы, которые состояли из нескольких проектов, назывались группами проектов; теперь они называются решениями.
Среда разработки Visual Studio .NET
Хотя язык программирования , который вы будете изучать в этой книге, называется Visual Basic , среда разработки программ называется Microsoft Visual Studio . NET . Это мощная и настраиваемая среда программирования, которая содержит все инструменты, необходимые для быстрого и эффективного создания надежных программ для Windows . Большинство возможностей Visual Studio можно одинаково использовать в Visual Basic . NET , Visual C++ . NET , Visual C# . NET и Visual J# . NET . Для запуска Visual Studio выполните следующие действия.
Важно. Если вы еще не установили файлы практических занятий для этой книги, обратитесь к разделу «Установка файлов практических занятий».
Запуск Visual Studio .NET
- На панели задач Windows нажмите кнопку Start (Пуск), наведите указатель на All Programs (Все программы), а затем на папку Microsoft Visual Studio .NET 2003. Появится список программ, находящихся в папке Microsoft Visual Studio .NET 2003.
Важно. Чтобы выполнить упражнения из этой книги, нужно установить одну из следующих редакций Visual Studio .NET 2003: Visual Basic .NET Стандартный выпуск, Visual Studio .NET Professional, Visual Studio .NET Enterprise Developer или Visual Studio .NET Enterprise Architect. Вы не сможете выполнять упражнения, если у вас установлена более ранняя версия Visual Basic. В этом случае попробуйте найти издание «Microsoft Visual Basic Professional 6.0 Шаг за шагом».
Запустится Visual Studio, и вы увидите на экране среду разработки с ее многочисленными меню, инструментами и окнами с компонентами. (Иногда эти окна также называются окнами инструментов.) Если это первый запуск Visual Studio после новой установки, то должна появиться Start Page (Начальная страница). Если Start Page (Начальная страница) не видна, ее можно вызвать из меню Help (Справка) по команде Show Start Page (Показать начальную страницу).
Важно. Если все надписи и команды в среде разработки написаны по-английски, в верхней строке меню выберите меню Tools, в нем команду Options (Параметры). Появится окно настройки среды Parameters. В левом столбце папок раскройте двойным щелчком папку Environment, а в ней выберите строку International Settings. В правой части окна из списка Language выберите Russian — это русский язык. Нажмите кнопку ОК и закройте окно. После этого завершите работу среды Visual Studio и запустите ее заново (вернитесь на пункт 1).
Отладка для абсолютных начинающих
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Независимо от обстоятельств код, создаваемый разработчиками программного обеспечения, далеко не всегда работает так, как задумано. В некоторых случаях все идет совершенно не по плану! Когда происходит непредвиденное, следующая задача заключается в том, чтобы выяснить, почему, и хотя мы можем просто заманчиво просто следить за нашим кодом в течение нескольких часов, проще и эффективнее использовать средство отладки или отладчик.
К сожалению, отладчик не является той волшебной палочкой, по мановению которой будут выявлены абсолютно все проблемы в коде. Процесс отладки подразумевает пошаговое выполнение кода в средстве отладки (например, в Visual Studio) в поисках точки, в которой вы допустили ошибку при написании программы. Таким образом вы узнаете, какие исправления нужно внести в код. При этом средства отладки часто позволяют вносить временные изменения, чтобы продолжить работу с программой.
Эффективное использование отладчика также требует определенных навыков, которые вырабатываются только с практикой, однако умение работать с ним является основополагающим требованием к любому разработчику программного обеспечения. В этой статье мы представим основные принципы отладки и некоторые начальные рекомендации.
Проанализируйте проблему, задавая себе правильные вопросы
Это поможет вам выяснить, в чем состоит проблема, прежде чем приступать к ее решению. Мы полагаем, что вы уже сталкивались с проблемами в коде, иначе вряд ли читали бы сейчас эту статью в поисках советов по его отладке! Итак, прежде чем начать отладку, проанализируйте проблему, которую вы пытаетесь решить:
- Что именно должен был выполнить код?
- Что произошло на самом деле? Если при запуске приложения возникает ошибка (исключение), это может быть хорошо! Исключение возникает в том случае, если при выполнении кода происходит непредвиденное событие (как правило, это ошибка какого-либо рода). С помощью средства отладки вы можете перейти точно к тому месту в коде, где возникло исключение, и исследовать возможные способы исправления ситуации. Если произошло что-то еще, каковы признаки проблемы? Есть ли у вас предположения относительно того, в каком месте кода возникла проблема? Например, если код должен выводить какой-то текст, но при этом текст содержит ошибки, вы можете сделать вывод, что в этом случае используются неверные данные или код вывода текста содержит ошибки другого рода. При пошаговом выполнении кода в отладчике вы можете изучить каждое изменение переменных и точно определить, когда и каким образом были присвоены неверные значения.
Проверьте свои предположения
Прежде чем исследовать причины возникновения ошибки, проверьте предположения, на основании которых вы ожидаете тот или иной результат. Неявные или неизвестные вам предположения могут помешать выявлению проблемы, даже если вы прямо смотрите на ее причину в отладчике. У вас может быть длинный список возможных предположений! Чтобы проверить их, задайте себе несколько вопросов.
- Используете ли вы нужный API (то есть соответствующие объект, функцию, метод или свойство)? Возможно, используемый вами API работает не так, как вы ожидаете. (После проверки вызова API в отладчике исправление может потребовать поездки в документацию, чтобы определить правильный API.)
- Правильно ли вы используете API? Даже если вы выбрали нужный API, он может использоваться неправильно.
- Нет ли в вашем коде опечаток? Некоторые опечатки, например ошибки в написании имени переменной, могут быть незаметными, особенно при работе с языками, в которых не требуется объявление переменных перед их использованием.
- Вносили ли вы в код изменения, полагая, что они никак не связаны с возникшей проблемой?
- Должны ли объект или переменная содержать определенное значение (или определенный тип значения) и соответствует ли это действительности?
- Известно ли назначение кода? Отлаживать чужой код часто бывает сложнее. Если это не ваш код, возможно, для его эффективной отладки вам потребуется изучить, что он делает.
Совет При написании кода начинайте с небольших и гарантированно работающих фрагментов! (Хороший пример кода полезен здесь.) Иногда проще исправить большой или сложный набор кода, начиная с небольшого фрагмента кода, демонстрирующего основную задачу, которую вы пытаетесь достичь. Затем вы можете последовательно изменять или добавлять код в поисках точки возникновения ошибки.
Подспрошив предположения, вы можете сократить время, необходимое для поиска проблемы в коде. Вы также можете сократить время, необходимое для устранения проблемы.
Используйте режим пошагового выполнения во время отладки для поиска места возникновения проблемы.
Очевидно, что ошибки и неверные результаты можно увидеть только после выполнения кода приложения. Кроме того, работа программы может завершиться неожиданно без каких-либо сообщений.
При запуске приложения в отладчике, который также называется режимом отладки, отладчик активно отслеживает все, что происходит при запуске программы. Кроме того, вы можете в любой точке приостановить работу приложения, исследовать его состояние и пошагово выполнять код в каждой строке, чтобы видеть в деталях, что происходит.

В Visual Studio введите режим отладки с помощью F5 (или > команды меню «Запуск отладки» или кнопки «Начать отладку» на панели инструментов отладки). Если возникает исключение, помощник по исправлению ошибок Visual Studio направит вас к точке его появления и предоставит другую необходимую информацию. См. дополнительные сведения об обработке исключений в коде в разделе Приемы и инструменты отладки.
Если исключение не возникает, возможно, вы имеете некоторое представление о том, где искать проблему в коде. Этот шаг заключается в том, что вы используете точки останова с отладчиком, чтобы дать себе возможность тщательно изучить код. Точки останова — это самая основная и важная функция надежной отладки. Точка останова указывает, в каком месте Visual Studio следует приостановить выполнение, чтобы вы могли проверить значения переменных, работу памяти или последовательность выполнения кода.
Чтобы задать точку останова в Visual Studio, достаточно щелкнуть в левом поле рядом с интересующей вас строкой кода. Также для этого можно поместить указатель мыши в нужную строку и нажать клавишу F9.
Чтобы продемонстрировать это, мы рассмотрим пример кода, который уже содержит несколько ошибок. Здесь мы используем C#, однако функции отладки также применяются для Visual Basic, C++, JavaScript, Python и других поддерживаемых языков. Также предоставлен пример кода для Visual Basic, но снимки экрана приведены для C#.
Создание образца приложения с ошибками
Затем вы создадите приложение с несколькими ошибками.
- Необходимо установить Visual Studio и рабочую нагрузку разработки для классических приложений .NET. Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого. Если необходимо установить рабочую нагрузку, но у вас уже есть Visual Studio, выберите «Сервис >получения инструментов» и «Компоненты». Запускается Visual Studio Installer. Выберите рабочую нагрузку Разработка классических приложений .NET и нажмите Изменить.
- Откройте Visual Studio. На начальном экране выберите Создать проект. Введите консоль в поле поиска, выберите C# или Visual Basic в качестве языка, а затем выберите консольное приложение для .NET. Нажмите кнопку Далее. Введите имя проекта, например ConsoleApp_FirstApp , и нажмите кнопку «Далее«. Выберите рекомендуемую целевую платформу или .NET 8, а затем нажмите кнопку «Создать«. Если вы не видите шаблон проекта консольного приложения для .NET, перейдите в раздел «Сервис >получения инструментов и функций«, который открывает установщик Visual Studio. Выберите рабочую нагрузку Разработка классических приложений .NET и нажмите Изменить. Visual Studio создаст консольный проект и откроет его в Обозревателе решений в области справа.
- Откройте файл Program.cs (или Program.vb) и замените все его содержимое по умолчанию следующим кодом. (Сначала выберите вкладку для нужного языка: C# или Visual Basic.)
using System; using System.Collections.Generic; namespace ConsoleApp_FirstApp < class Program < static void Main(string[] args) < Console.WriteLine("Welcome to Galaxy News!"); IterateThroughList(); Console.ReadKey(); >private static void IterateThroughList() < var theGalaxies = new List< new Galaxy() < Name="Tadpole", MegaLightYears=400, GalaxyType=new GType('S')>, new Galaxy() < Name="Pinwheel", MegaLightYears=25, GalaxyType=new GType('S')>, new Galaxy() < Name="Cartwheel", MegaLightYears=500, GalaxyType=new GType('L')>, new Galaxy() < Name="Small Magellanic Cloud", MegaLightYears=.2, GalaxyType=new GType('I')>, new Galaxy() < Name="Andromeda", MegaLightYears=3, GalaxyType=new GType('S')>, new Galaxy() < Name="Maffei 1", MegaLightYears=11, GalaxyType=new GType('E')>>; foreach (Galaxy theGalaxy in theGalaxies) < Console.WriteLine(theGalaxy.Name + " " + theGalaxy.MegaLightYears + ", " + theGalaxy.GalaxyType); >// Expected Output: // Tadpole 400, Spiral // Pinwheel 25, Spiral // Cartwheel, 500, Lenticular // Small Magellanic Cloud .2, Irregular // Andromeda 3, Spiral // Maffei 1, 11, Elliptical > > public class Galaxy < public string Name < get; set; >public double MegaLightYears < get; set; >public object GalaxyType < get; set; >> public class GType < public GType(char type) < switch(type) < case 'S': MyGType = Type.Spiral; break; case 'E': MyGType = Type.Elliptical; break; case 'l': MyGType = Type.Irregular; break; case 'L': MyGType = Type.Lenticular; break; default: break; >> public object MyGType < get; set; >private enum Type < Spiral, Elliptical, Irregular, Lenticular>> >
Imports System Imports System.Collections.Generic Namespace ConsoleApp_FirstApp Friend Class Program Public Shared Sub Main(ByVal args As String()) Console.WriteLine("Welcome to Galaxy News!") Call IterateThroughList() Console.ReadKey() End Sub Private Shared Sub IterateThroughList() Dim theGalaxies = New List(Of Galaxy) From < New Galaxy() With < .Name = "Tadpole", .MegaLightYears = 400, .GalaxyType = New GType("S"c) >, New Galaxy() With < .Name = "Pinwheel", .MegaLightYears = 25, .GalaxyType = New GType("S"c) >, New Galaxy() With < .Name = "Cartwheel", .MegaLightYears = 500, .GalaxyType = New GType("L"c) >, New Galaxy() With < .Name = "Small Magellanic Cloud", .MegaLightYears = 0.2, .GalaxyType = New GType("I"c) >, New Galaxy() With < .Name = "Andromeda", .MegaLightYears = 3, .GalaxyType = New GType("S"c) >, New Galaxy() With < .Name = "Maffei 1", .MegaLightYears = 11, .GalaxyType = New GType("E"c) >> For Each theGalaxy As Galaxy In theGalaxies Console.WriteLine(theGalaxy.Name & " " & theGalaxy.MegaLightYears & ", " & theGalaxy.GalaxyType) Next End Sub End Class Public Class Galaxy Public Property Name As String Public Property MegaLightYears As Double Public Property GalaxyType As Object End Class Public Class GType Shared Operator &(ByVal left As String, ByVal right As GType) As String Return New String(left & right.ToString()) End Operator Public Sub New(ByVal type As Char) Select Case type Case "S"c MyGType = GType.Type.Spiral Case "E"c MyGType = GType.Type.Elliptical Case "l"c MyGType = GType.Type.Irregular Case "L"c MyGType = GType.Type.Lenticular Case Else End Select End Sub Private _MyGType As String Public Property MyGType As Object Get Return _MyGType End Get Set(ByVal value As Object) _MyGType = value.ToString() End Set End Property Private Enum Type Spiral Elliptical Irregular Lenticular End Enum End Class End Namespace
Этот код выводит список, содержащий название галактики, расстояние до нее, а также тип галактики. При отладке важно учитывать предназначение кода. Ниже показан формат одной строки из списка, который мы хотим отобразить в выводе:
название галактики, расстояние, тип галактики.
Выполнить приложение

Нажмите клавишу F5 или кнопку «Начать отладку» на панели инструментов отладки, расположенной над редактором кода.
По результатам запуска приложения отладчик не демонстрирует никаких исключений. Тем не менее данные, выводимые в окне консоли, не соответствуют ожиданиям. Вот что мы должны были увидеть:
Tadpole 400, Spiral Pinwheel 25, Spiral Cartwheel, 500, Lenticular Small Magellanic Cloud .2, Irregular Andromeda 3, Spiral Maffei 1, Elliptical
Но вместо этого вы увидите следующие выходные данные:
Tadpole 400, ConsoleApp_FirstApp.GType Pinwheel 25, ConsoleApp_FirstApp.GType Cartwheel, 500, ConsoleApp_FirstApp.GType Small Magellanic Cloud .2, ConsoleApp_FirstApp.GType Andromeda 3, ConsoleApp_FirstApp.GType Maffei 1, 11, ConsoleApp_FirstApp.GType
По выходным данным и коду мы видим, что GType — это имя класса, содержащего тип галактики. Но мы пытаемся отобразить сам тип (например, Spiral, то есть спиральная), а не имя класса!
Отладка приложения
- Пока приложение еще работает, вставьте точку останова. Щелкните правой кнопкой мыши рядом с Console.WriteLine методом, чтобы получить контекстное меню и выберите точку останова вставить точку > останова в всплывающем меню.
foreach (Galaxy theGalaxy in theGalaxies)
For Each theGalaxy As Galaxy In theGalaxies Console.WriteLine(theGalaxy.Name & " " & theGalaxy.MegaLightYears & ", " & theGalaxy.GalaxyType) Next
В месте установки точки останова в левом поле появится красный круг.
При возникновении проблемы в выходных данных вы начинаете отладку, просматривая предыдущий код, который задает выходные данные в отладчике.
» на панели инструментов отладки (CTRL + SHIFT +F5). Выполнение приложения приостановится в заданной точке останова. Место приостановки отладчика будет выделено желтым цветом (при этом желтая строка кода еще не выполнена).
Изначально вы ожидаете, что в окно консоли будет выведено именно значение Spiral. Поэтому вы можете получить доступ к значению в этом коде при запуске приложения. В этом сценарии мы используем неверный API-интерфейс. Давайте посмотрим, можно ли исправить это при выполнении кода в отладчике.

Примечание. Для отладки кода примера Visual Basic пропустите следующие несколько шагов, пока не будет указано, как нажать кнопку «Перезапустить «.

public object GalaxyType
public GType GalaxyType

Tadpole 400, Spiral Pinwheel 25, Spiral Cartwheel, 500, Lenticular Small Magellanic Cloud .2, Andromeda 3, Spiral Maffei 1, Elliptical
public GType(char type)
Public Sub New(ByVal type As Char)
Здесь задается тип галактики, поэтому нам необходимо изучить эту строку более пристально.
» на панели инструментов отладки (CTRL + SHIFT +F5), чтобы перезапустить. Отладчик приостановит работу в строке кода, где вы задали точку останова.
Взглянув на код, вы заметите опечатку в инструкции case ‘l’ . Оно должно иметь значение case ‘I’ .Итоги
Если вы сталкиваетесь с проблемой, воспользуйтесь отладчиком и командами пошагового выполнения, такими как F10 и F11, для поиска области кода, в которой возникают ошибки.
Если выявить проблемную область кода не удается, задайте точку останова в коде, который выполняется перед возникновением ошибки, после чего используйте команды пошагового выполнения, пока проблема не проявится. Также вы можете использовать точки трассировки для вывода сообщений в окно вывода. Анализируя сообщения, которые выводятся в окно или отсутствуют в нем, нередко можно изолировать область кода, где возникает проблема. Для дальнейшего сужения области поиска этот процесс может потребоваться повторить несколько раз.
Выявив проблемную область кода, используйте отладчик для ее детального анализа. Чтобы определить причину возникновения проблемы, проверьте код во время выполнения приложения в отладчике.
- Проверьте переменные и убедитесь, что они содержат значения того типа, который вы ожидаете. Если переменная содержит недопустимое значение, найдите, где оно было задано. Для этого может потребоваться перезапустить отладчик, проверить стек вызовов или выполнить одновременно оба этих действия.
- Проверьте, выполняет ли ваше приложение код, который вы ожидаете. (Так, в примере приложения должна была выполняться инструкция switch , задающая тип галактики Irregular, однако нужный код был пропущен из-за опечатки.)
Отладчик представляет собой эффективное средства для выявления ошибок. Средство отладки может искать ошибки вместо вас в том случае, если ему известно предназначение кода. Для этого вы должны указать предназначение. Этого можно добиться с помощью модульных тестов.
Следующие шаги
Из этой статьи вы узнали общие принципы отладки приложений. Теперь вы можете приступить к изучению других возможностей отладчика.
Знакомство с отладчиком Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В этом разделе представлены средства отладчика, предоставляемые Visual Studio. В контексте Visual Studio отладка приложения обычно означает запуск приложения с подключенным отладчиком (то есть в режиме отладчика). При этом в отладчике доступно множество способов наблюдения за выполнением кода. Вы можете выполнить шаги по коду и просмотреть значения, хранящиеся в переменных, вы можете настроить контроль над переменными, чтобы увидеть, когда изменяются значения, можно проверить путь выполнения кода и т. д. Если это первый раз, когда вы попытались выполнить отладку кода, вам может потребоваться прочитать отладку для абсолютных начинающих , прежде чем перейти к этому разделу. Если вы пытаетесь выполнить определенную задачу и должны знать, какую функцию следует использовать, см . средство поиска функций отладчика.
Описанные здесь функции применяются к C#, C++, Visual Basic, JavaScript и другим языкам, поддерживаемым Visual Studio (если не указано иное).
Установка точки останова и запуск отладчика
Точки останова полезны, если вам известны строка или раздел кода, которые вы хотите подробно изучить в среде выполнения. Дополнительные сведения о различных типах точек останова, которые можно задать, например об условных точках останова и точках останова в функциях, см. в разделе Использование точек останова.
Для отладки нужно запустить приложение с отладчиком, подключенным к процессу приложения. Для этого:
- Нажмите клавишу F5 (Отладка > Начать отладку), которая является наиболее распространенным методом.
Однако сейчас у вас, возможно, не задано ни одной точки останова для проверки кода приложения, поэтому мы сначала зададим их, а затем начнем отладку. Точки останова — это самая основная и важная функция надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода.
Если вы открыли файл в редакторе кода, точку останова можно задать, щелкнув в поле слева от строки кода.


Нажмите клавишу F5 (Отладка > запуска отладки) или кнопку «Начать отладку» на панели инструментов отладки, а отладчик запускается в первую точку останова, с которой она сталкивается. Если приложение еще не запущено, при нажатии клавиши F5 запускается отладчик и выполняется остановка в первой точке останова.
Переход по коду в отладчике с помощью пошаговых команд
Мы указываем сочетания клавиш для большинства команд, так как они ускоряют навигацию по коду вашего приложения. (Аналогичные команды, такие как команды меню, отображаются в круглых скобках.) Дополнительные сведения об использовании команд пошагового выполнения см. в разделе Навигация по коду в отладчике.
Для запуска приложения с подключенным отладчиком нажмите клавишу F11 (Отладка > Шаг с заходом). F11 — это команда Шаг с заходом, которая выполняет приложение с переходом к следующему оператору. При запуске приложения с помощью клавиши F11 отладчик останавливается на первом выполняемом операторе.


Желтая стрелка представляет оператор, на котором приостановлен отладчик. В этой же точке приостанавливается выполнение приложения (этот оператор пока не выполнен).
Клавишу F11 удобно использовать для более детальной проверки потока выполнения. (Чтобы ускорить переход по коду, мы также показываем другие варианты.) По умолчанию отладчик пропускает код, отличный от пользователя (если требуется дополнительные сведения, см . только мой код).
В управляемом коде вы увидите диалоговое окно с запросом о том, хотите ли вы получать уведомления при автоматическом обходе свойств и операторов (поведение по умолчанию). Если вы хотите изменить этот параметр позже, отключите параметр Шаг с обходом свойств и операторов в меню Инструменты > Параметры в разделе Отладка.
Шаг с обходом по коду для пропуска функций
Когда вы находитесь в строке кода, представляющей собой вызов функции или метода, можно нажать клавишу F10 (Отладка > Шаг с обходом) вместо F11.
Клавиша F10 продолжает выполнение отладчика без захода в функции или методы в коде приложения (код продолжает выполняться). Нажав клавишу F10, вы можете обойти код, который вас не интересует. Так можно быстро перейти к важному для вас коду. Дополнительные сведения об использовании команд пошагового выполнения см. в разделе Навигация по коду в отладчике.
Быстрое выполнение до точки в коде с помощью мыши
Использование кнопки Выполнение до щелкнутого аналогично установке временной точки останова. Кроме того, эта команда удобна для быстрой работы в видимой области кода приложения. Выполнение до щелкнутого можно использовать в любом открытом файле. Дополнительные сведения об этой функции и аналогичных функциях навигации см. в разделе Выполнение до определенного места в коде.

Пока в отладчике наведите указатель мыши на строку кода, пока не появится кнопка «Запустить» (выполнить выполнение здесь).


Кнопка Выполнить о щелчка (Выполнить до этого места) доступна начиная с Visual Studio 2017.
Нажмите кнопку выполнения до щелкнутого (Выполнить до этого места). Отладчик продолжает выполнение до строки кода, которую вы щелкнули.
Вывод отладчика из текущей функции
В некоторых случаях может потребоваться продолжить сеанс отладки, однако полностью проведя отладчик сквозь текущую функцию.
Нажмите сочетание клавиш SHIFT + F11 (или выберите Отладка > Шаг с выходом).
Эта команда возобновляет выполнение приложения (и перемещает отладчик) до возврата текущей функции.
Выполнить до текущей позиции
Если вы находитесь в режиме редактирования кода (то есть работа отладчика не приостановлена), щелкните правой кнопкой мыши строку кода в приложении и выберите команду Выполнить до текущей позиции (или нажмите клавиши CTRL+F10). Эта команда запускает отладку и задает временную точку останова на текущей строке кода. Дополнительные сведения об этой функции и аналогичных функциях навигации см. в разделе Выполнение до определенного места в коде.


Если имеются заданные точки останова, отладчик приостанавливается в первой достигнутой точке останова.
Нажимайте клавишу F5, пока не достигнете строки кода, для которой выбрали Выполнить до текущей позиции.
Эта команда удобна, когда вы редактируете код и хотите быстро задать временную точку останова и одновременно запустить отладчик.
Вы можете использовать функцию Выполнить до текущей позиции в окне Стек вызовов во время отладки.
Быстрый перезапуск приложения

Нажмите кнопку «Перезапустить» на панели инструментов отладки (или нажмите клавиши CTRL+SHIFT+F5).
Кнопка Перезапустить позволяет сэкономить время, затрачиваемое на остановку приложения и перезапуск отладчика. Отладчик приостанавливается в первой точке останова, достигнутой при выполнении кода.

Если вы хотите остановить отладчик и вернуться в редактор кода, можно нажать красную кнопку остановки вместо перезапуска .
Редактирование кода в реальном времени
Visual Studio 2022 поддерживает динамическое редактирование кода в процессе отладки. Дополнительные сведения см. в следующих разделах.
- Создание и отладка выполняющегося кода
- Создание и отладка выполняющегося кода XAML с помощью Горячей перезагрузки XAML
- Изменить и продолжить
Изменение кода и продолжение отладки (C#, VB, C++, XAML)
В большинстве языков, поддерживаемых Visual Studio, можно изменять код во время сеанса отладки, а затем продолжать отладку. Для использования этой функции щелкните код, чтобы установить в нем курсор, когда отладчик приостановлен, внесите изменения и нажмите клавишу F5, F10 или F11, чтобы продолжить отладку. Дополнительные сведения об этой функции и ее ограничениях см. в статье Изменить и продолжить.
Сведения об изменении кода XAML во время сеанса отладки см. в статье Создание и отладка выполняющегося кода XAML с помощью горячей перезагрузки XAML.
Проверка переменных с помощью подсказок по данным
Теперь, когда вы немного освоились, у вас есть хорошая возможность проверить состояние приложения (переменные) с помощью отладчика. Функции, позволяющие проверять переменные, являются одними из самых полезных в отладчике. Реализовывать эту задачу можно разными способами. Часто при попытке выполнить отладку проблемы пользователь старается выяснить, хранятся ли в переменных значения, которые требуются в определенном состоянии приложения. Подробные сведения об использовании подсказок по данным см. в разделе Просмотр значений данных в подсказках по данным.
В режиме приостановки в отладчике наведите указатель мыши на объект, чтобы увидеть его текущее значение или значение по умолчанию.

Если переменная имеет свойства, объект можно развернуть, чтобы увидеть все его свойства.
Часто при отладке бывает необходимо быстро проверить значения свойств для объектов. Лучше всего для этого подходят подсказки по данным.
Проверка переменных с помощью окон «Видимые» и «Локальные»
В окне Видимые отображаются переменные вместе с текущим значением и типом. Окно Видимые показывает все переменные, используемые в текущей или предыдущей строке (в C++ это окно показывает переменные в трех предыдущих строках кода; сведения о поведении для конкретного языка см. в документации). Дополнительные сведения об использовании этих окон см. в статье Проверка переменных в окнах «Видимые» и «Локальные».
Во время отладки взгляните на окно Видимые в нижней части редактора кода.


В JavaScript окно Локальные поддерживается, а окно Видимые — нет.
Взгляните в окно Локальные. В окне Локальные показаны переменные, которые находятся в текущей области.


В этом примере объекты this и f находятся в области действия. Дополнительные сведения см. в статье Проверка переменных в окнах «Видимые» и «Локальные».
Установка контрольного значения
В окне Контрольное значение можно указать переменную (или выражение), которую необходимо отслеживать. Дополнительные сведения см. в статье Установка контрольных значений с помощью окон «Контрольное значение» и «Быстрая проверка».
Во время отладки щелкните правой объект кнопкой мыши и выберите пункт Добавить контрольное значение.


В этом примере у вас есть контрольное значение, заданное для объекта, и по мере перемещения по отладчику вы можете наблюдать за изменением его значения. В отличие от других окон переменных, в окне Контрольное значение всегда отображаются просматриваемые вами переменные (они выделяются серым цветом, когда находятся вне области действия).
Изучение стека вызовов
В окне Стек вызовов показан порядок вызова методов и функций. В верхней строке показана текущая функция. Во второй строке показана функция или свойство, из которого она вызывалась, и т. д. Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения. Дополнительные сведения см. в статье о просмотре стека вызовов.
Окно Стек вызовов аналогично перспективе «Отладка» в некоторых интегрированных средах разработки, например Eclipse.
Во время отладки щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области.


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

В этом примере Помощник по исправлению ошибок отображает исключение System.NullReferenceException и ошибку с сообщением о том, что для экземпляра объекта не задана ссылка на объект. Также он сообщает, что строковое значение имело значение NULL при попытке вызвать метод Trim .

В этом примере помощник по исправлению ошибок показывает исключение System.Argument и сообщение об ошибке, где сказано, что путь имеет недопустимую форму. Таким образом, мы знаем, что ошибка произошла в аргументе метода или функции.
В этом примере вызов DirectoryInfo выдал ошибку на пустой строке, хранящейся в переменной value .
Помощник по исправлению ошибок — это отличная функция, которая помогает отлаживать ошибки. Используя помощник по исправлению ошибок, вы также можете, например, просмотреть сведения об ошибке и добавить контрольное значение. При необходимости вы также можете изменить условия для возникновения конкретного исключения. См. дополнительные сведения об обработке исключений в коде в разделе Приемы и инструменты отладки.
Разверните узел Параметры исключений, чтобы просмотреть дополнительные параметры для обработки исключения этого типа, однако в рамках этого тура ничего менять не требуется.
Настройка отладки
Вы можете настроить проект для сборки, как описано в статье о конфигурации отладки или выпуска, настроить свойства проекта для отладки или настроить общие параметры для отладки. Кроме того, можно настроить отладчик для вывода пользовательских сведений с помощью таких компонентов, как атрибута DebuggerDisplay либо платформы NatVis для C/C++.
Свойства отладки зависят от типа проекта. Например, можно задать аргумент, который будет передан в приложение при запуске. Чтобы получить доступ к свойствам проекта приложения, щелкните имя проекта правой кнопкой мыши в обозревателе решений и выберите Свойства. Свойства отладки обычно отображаются на вкладке Сборка или Отладка в зависимости от типа проекта.
Начиная с Visual Studio 2022, вкладка Отладка для проектов .NET содержит ссылку на пользовательский интерфейс профилей запуска отладки, где можно задать свойства, связанные с отладкой.


Отладка интерактивных приложений ASP.NET в Службе приложений Azure
Сведения об отладке в службе приложение Azure см. в статье «Отладка приложений Azure».
Для Visual Studio Enterprise (только) отладчик моментальных снимков принимает моментальный снимок ваших рабочих приложений при выполнении кода. Чтобы указать отладчику на необходимость создать моментальный снимок, следует установить точки прикрепления и точки ведения в коде. Отладчик позволяет увидеть источник ошибки, не затрагивая трафик рабочего приложения. Средство Snapshot Debugger позволяет значительно сократить затраты времени на устранение проблем, возникающих в рабочих средах.

Коллекция моментальных снимков доступна для приложений ASP.NET, выполняющихся в Службе приложений Azure. Приложения ASP.NET должны выполняться на платформе .NET Framework 4.6.1 или более поздней версии, а приложения ASP.NET Core должны выполняться на платформе .NET Core 2.0 или более поздней версии в Windows.
Просмотр моментальных снимков с помощью возврата на шаг назад в IntelliTrace (Visual Studio Enterprise)
Функция возврата на шаг назад в IntelliTrace автоматически создает моментальный снимок вашего приложения для каждого события точки останова и шага отладчика. Используя записанные моментальные снимки, вы можете возвращаться к этим точкам останова и шагам, просматривая предыдущее состояние приложения. Возможность возврата на шаг назад в IntelliTrace позволяет сэкономить время в тех случаях, когда вам нужно просмотреть предыдущее состояние приложения, но не требуется перезапускать отладку или воссоздавать необходимое состояние приложения.
Для просмотра моментальных снимков и перехода между ними используйте кнопки На шаг назад и На шаг вперед на панели инструментов отладки. С помощью этих кнопок можно перейти к событиям, которые отображаются на вкладке События в окне Средства диагностики.
![]()
Отладка проблем производительности
Если приложение работает слишком медленно или использует слишком много памяти, возможно, вам следует протестировать его с помощью средств профилирования на раннем этапе. Дополнительные сведения о средствах профилирования, таких как средство загрузки ЦП и анализатор памяти, см. в разделе Знакомство со средствами профилирования.
Следующие шаги
В этом руководстве вы кратко познакомились с функциями отладчика. Отдельные функции, например точки останова, вы можете изучить более подробно.
Use breakpoints in the Visual Studio debugger (Использование точек останова в отладчике Visual Studio)
Как запустить программу visual basic
Создадим первое приложение на языке Visual Basic .NET. Что потребуется для работы с VB.NET? В первую очередь нам нужен текстовый редактор, чтобы набирать код программы, и компилятор, который позволит скомпилировать написанный нами код в программу. Ну и конечно нам нужен фреймворк .NET, который требуется для выполнения программы. Для облегчения написания программного кода обычно используют специальные среды разработки, которые предоставляют многообразие различных возможностей по созданию программ.
Для создания приложений на VB.NET будем использовать бесплатную и полнофункциональную среду разработки — Visual Studio Community 2022, которую можно загрузить по следующему адресу: Microsoft Visual Studio 2022

После загрузки запустим программу установщика. В открывшемся окне нам будет предложено выбрать те компоненты, которые мы хотим установить вместе Visual Studio. Стоит отметить, что Visual Studio — очень функциональная среда разработки и позволяет разрабатывать приложения с помощью множества языков и платформ. В нашем случае нам будет интересовать прежде всего VB.NET и .NET.
Чтобы добавить в Visual Studio поддержку проектов для VB.NET и .NET 6, в программе установки среди рабочих нагрузок можно выбрать только пункт ASP.NET и разработка веб-приложений . Можно выбрать и больше опций или вообще все опции, однако стоит учитывать свободный размер на жестком диске — чем больше опций будет выбрано, соответственно тем больше места на диске будет занято.

И при инсталляции Visual Studio на ваш компьютер будут установлены все необходимые инструменты для разработки программ, в том числе фреймворк .NET 6.
После завершения установки создадим первую программу. Она будет простенькой. Вначале откроем Visual Studio. На стартовом экране выберем Create a new project (Создать новый проект)

На следующем окне в качестве типа проекта выберем Console App , то есть мы будем создавать консольное приложение на языке VB.NET

Далее на следующем этапе нам будет предложено указать имя проекта и каталог, где будет располагаться проект.

В поле Project Name дадим проекту какое-либо название. В моем случае это HelloApp .
На следующем окне Visual Studio предложит нам выбрать версию .NET, которая будет использоваться для проекта. По умолчанию здесь выбрана последняя на данный момент версия — .NET 6.0. Оставим и нажмен на кнопку Create (Создать) для создания проекта.

После этого Visual Studio создаст и откроет нам проект:

В большом поле в левой части Visual Studio располагается текстовый редактор с подсветкой, в котором открыт автоматически сгенерированный код файла Program VB.NET.
Справа находится окно Solution Explorer , в котором можно увидеть структуру нашего проекта. В данном случае у нас сгенерированная по умолчанию структура.
В начале идет узел Dependencies . Этот узел содержит сборки dll, которые добавлены в проект по умолчанию. Эти сборки как раз содержат классы библиотеки .NET, которые будет использовать проект VB.NET.
Далее идет непосредственно сам файл кода программы — Program.vb . Как раз этот файл и открыт в текстовом редакторе кода.
Рассмотрим код файла Program.vb :
Imports System Module Program 'начало объявления модуля Sub Main(args As String()) 'начало объявления метода Console.WriteLine("Hello World!") End Sub 'конец объявления метода End Module 'конец объявления модуля
В начале файла идет директива Imports , после которой идет название подключаемого пространства имен. Пространства имен представляют собой организацию функциональности в общие блоки. Например, на первой строке
Imports System
подключается пространство имен System, которое содержит фундаментальные и базовые классы платформы .NET.
Команда Imports позволяет импортировать функциональность из других, подключенных библиотек. В частности, здесь подключается функциональность из пространства имен System.
Хотя VB.NET — это объектно-ориентированный язык программирования, от классического Visual Basica он унаследовал возможность использования модулей. И код программы, генерируемый по умолчанию, представляет модуль.
Объявление модуля начинается со слова Module , после которого идет название модуля — в данном случае модуль называется Program:
Module Program
Завершаться объявление модуля должно выражением End Module . А весь непосредственный код программы должен располагаться между началом объявления модуля и его завершением.
В модуле по умолчанию определен метод Main — это главный метод:
Sub Main(args As String()) Console.WriteLine("Hello World!") End Sub
Программа может содержать множество методов, но среди них будет один главный — это метод Main, через который будут вызываться все остальные методы. И метод с данным названием обязательно должен быть в программе.
Метод Main начинается выражением Sub Main , где Sub указывается, что дальше у нас идет метод, который не возвращает никакого значения. Позже мы подробнее разберем, что все это значит. И затем идет название — то есть Main.
Далее в скобках у нас идут параметры метода — args As String() — это массив args, который хранит значения типа String , то есть строки. В данном случае они нам пока не нужны, но в реальной программе это те параметры, которые передаются при запуске программы из консоли.
Метод заканчивается выражением End Sub .
Внутри метода располагаются действия, которые этот метод выполняет:
Console.WriteLine("Hello World!")
По умолчанию здесь выполняется одно действие — вызов встроенного метода Console.WriteLine() , который выводит строку на консоль. То есть при выполнении данной программы на консоль будет выводиться «Hello World!»
Теперь мы можем запустить на выполнение с помощью клавиши F5 или с панели инструментов, нажав на зеленую стрелку. И если вы все сделали правильно, то при запуске приложения на консоль будет выведена строка «Hello World!».

Теперь изменим весь этот код на следующий:
Module Program Sub Main() Console.Write("Введите имя: ") Dim name = Console.ReadLine() Console.WriteLine($"Привет, ") End Sub End Module
Здесь в методе Main вначале идет вызов метода Console.Write(«Введите имя:») , он, как и метод Console.WriteLine() выводит на консоль некоторую строку.
Затем с помощью оператора Dim определяется переменная name
Dim name = Console.ReadLine()
Этой переменной присваивается результат другог встроенного метода — Console.ReadLine , который позволяет считать с консоли введенную строку. То есть мы введем в консоли строку (точнее имя), и эта строка окажется в переменой name .
Затем введенное имя выводится на консоль:
Console.WriteLine($"Привет, ")
Чтобы ввести значение переменной name внутрь выводимой на консоль строки, применяются фигурные скобки <>. То есть при выводе строки на консоль выражение будет заменяться на значение переменной name — введенное имя.
Однако чтобы можно было вводить таким образом значения переменных внутрь строки, перед строкой указывается знак доллара $.
Запустим проект на выполнение с помощью клавиши F5 и после приглашения к вводу введем какое-нибудь имя:

Итак, мы создали первое приложение. Вы его можете найти на жестком диске в папке проекта в каталоге bin\Debug\net6.0 . Оно будет называться по имени проекта и иметь расширение exe. И затем этот файл можно будет запускать без Visual Studio, а также переносить его на другие компьютеры, где установлен .NET 6.