Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Компилятор Visual Basic содержит набор предупреждений о коде, которые могут привести к ошибкам во время выполнения. Эту информацию можно использовать для записи более чистого, более быстрого и лучшего кода с меньшим количеством ошибок. Например, компилятор выдает предупреждение, когда пользователь пытается вызвать член неинициализированной переменной объекта, вернуться из функции без задания возвращаемого значения или выполнить блок Try с ошибками в логике обработки исключений.
Иногда компилятор предоставляет дополнительную логику от имени пользователя, чтобы пользователь смог сосредоточиться на задаче, а не на ожидании возможных ошибок. В предыдущих версиях Visual Basic параметр Strict использовался для ограничения дополнительной логики, которую предоставляет компилятор Visual Basic. Настройка предупреждений позволяет ограничить эту логику более детально на уровне отдельных предупреждений.
Возможно, вы хотите настроить проект и отключить некоторые предупреждения, не относящиеся к приложению, при превратив другие предупреждения в ошибки. На этой странице объясняется, как включить и отключить отдельные предупреждения.
Отключение и включение предупреждений
Существует несколько различных способов настройки предупреждений: их можно настроить с помощью конструктора проектов, использовать параметры /warnaserror и /nowarn компилятора или изменить файл проекта (vbproj файл) и использовать NoWarn свойство MSBuild. Сведения об использовании свойства MSBuild см. в разделе "Подавление конкретных предупреждений" для всего проекта Visual Basic.
Интерфейс конструктора проектов отличается в зависимости от того, работаете ли вы с проектом .NET Framework или проектом .NET Core (или .NET 5 или более поздней версии).
В проектах .NET Core (или .NET 5 и более поздних версий) раздел компиляцииконструктора проектов содержит параметр с именем "Серьезность предупреждений ", который можно использовать для отключения всех предупреждений, повышения уровня всех предупреждений до ошибок или управления каждой категорией предупреждений отдельно (по умолчанию). Параметры категории предупреждений отображаются в той же области конструктора проектов.
В проектах .NET Framework на вкладке "Компиляция " конструктора проектов установите флажок "Отключить все предупреждения" , чтобы отключить все предупреждения; Выберите " Обрабатывать все предупреждения как ошибки" , чтобы обрабатывать все предупреждения как ошибки. Некоторые отдельные предупреждения можно переключать между статусами ошибки и предупреждения по мере необходимости в отображаемой таблице.
Вкладка "Компиляция " на странице конструктора проектов позволяет включать и отключать предупреждения. Установите флажок "Отключить все предупреждения" , чтобы отключить все предупреждения; Выберите " Обрабатывать все предупреждения как ошибки" , чтобы обрабатывать все предупреждения как ошибки. Некоторые отдельные предупреждения можно переключать между ошибкой и предупреждением по желанию в таблице, отображаемой.
Если параметр "Строгий " установлен как "Выкл", предупреждения, связанные с параметром ", нельзя обрабатывать независимо друг от друга. Если параметр "Строгий " имеет значение "Вкл.", связанные предупреждения обрабатываются как ошибки независимо от их состояния. Если параметр "Option Strict" установлен в значение Custom, указывая /optionstrict:custom в командной строке компилятора, предупреждения Option Strict можно независимо включать или отключать.
Параметр командной строки /warnaserror компилятора также можно использовать для указания того, обрабатываются ли предупреждения как ошибки. В этот параметр можно добавить список с разделителями-запятыми, чтобы указать, какие предупреждения следует рассматривать как ошибки или предупреждения с помощью +или -. В следующей таблице приведены возможные параметры.
| Параметр командной строки | Указывает |
|---|---|
/warnaserror+ или /warnaserror |
Обрабатывать все предупреждения как ошибки |
/warnsaserror- |
Не рассматривайте предупреждения как ошибки. Это параметр по умолчанию. |
/warnaserror+:<warning list
>
|
Обрабатывать определенные предупреждения в виде ошибок, перечисленных по номеру идентификатора ошибки в списке с разделителями-запятыми r. |
/warnaserror-:<warning list> |
Не рассматривайте определенные предупреждения как ошибки, перечисленные их идентификатором ошибки в списке с разделителями-запятыми. |
/nowarn |
Не сообщайте предупреждения. |
/nowarn:<warning list> |
Не сообщайте о указанных предупреждениях, перечисленных их идентификатором ошибки в списке с разделителями-запятыми. |
Список предупреждений содержит идентификаторы ошибок предупреждений, которые следует рассматривать как ошибки, которые можно использовать с параметрами командной строки для включения или отключения определенных предупреждений. Если список предупреждений содержит недопустимое число, сообщается об ошибке.
Примеры
В этой таблице примеров аргументов командной строки описывается, что делает каждый аргумент.
| Аргумент | Description |
|---|---|
vbc /warnaserror |
Указывает, что все предупреждения должны рассматриваться как ошибки. |
vbc /warnaserror:42024 |
Указывает, что предупреждение 42024 должно рассматриваться как ошибка. |
vbc /warnaserror:42024,42025 |
Указывает, что предупреждения 42024 и 42025 должны рассматриваться как ошибки. |
vbc /nowarn |
Указывает, что предупреждения не должны сообщаться. |
vbc /nowarn:42024 |
Указывает, что предупреждение 42024 не должно быть сообщено. |
vbc /nowarn:42024,42025 |
Указывает, что предупреждения 42024 и 42025 не должны сообщаться. |
Типы предупреждений
Ниже приведен список предупреждений, которые может потребоваться рассматривать как ошибки.
Предупреждение о неявном преобразовании
Создано для случаев неявного преобразования. Они не включают неявные преобразования из встроенного числового типа в строку при использовании & оператора. По умолчанию новые проекты отключены.
Идентификатор: 42016
Предупреждение о вызове и разрешении перегрузки метода с поздней привязкой
Создано для примеров поздней привязки. По умолчанию новые проекты отключены.
Идентификатор: 42017
Предупреждения о операндах типа "Объект"
Создается, когда встречаются операнды типа Object, которые вызвали бы ошибку при Option Strict On. По умолчанию для новых проектов включен.
Идентификатор: 42018 и 42019
Требуются предупреждения для заявлений с использованием условия 'As'
Создается при отсутствии As предложения переменной, функции или объявления свойств, создавшего ошибку с параметром Strict On. Предполагается, что переменные, которым не назначен тип, считаются типа Object. По умолчанию для новых проектов включен.
Идентификатор: 42020 (объявление переменной), 42021 (объявление функции) и 42022 (объявление свойства).
Возможные предупреждения исключений ссылочного значения NULL
Создается при использовании переменной перед назначением значения. По умолчанию для новых проектов включен.
Идентификатор: 42104, 42030
Предупреждение о неиспользуемой локальной переменной
Генерируется при объявлении локальной переменной, но она ни разу не используется. По умолчанию включен.
Идентификатор: 42024
Доступ к статическому члену через переменную экземпляра - предупреждение
Создается при доступе к элементу класса через экземпляр, что может иметь побочные эффекты, или если доступ к элементу класса через переменную экземпляра не является правой частью выражения, либо он передается как параметр. По умолчанию для новых проектов включен.
Идентификатор: 42025
Предупреждения о рекурсивном операторе или доступе к свойствам
Создается, когда тело функции использует тот же оператор или свойство, в которой она определена. По умолчанию для новых проектов включен.
Идентификатор: 42004 (оператор), 42026 (свойство)
Функция или оператор без предупреждения возвращаемого значения
Создается, когда функция или оператор не имеют возвращаемого значения. Это включает в себя пропуск неявной Set локальной переменной с тем же именем, что и функция. По умолчанию для новых проектов включен.
Идентификатор: 42105 (функция), 42016 (оператор)
Модификатор перегрузки, используемый в предупреждении модуля
Создается, когда Overloads используется в Module. По умолчанию для новых проектов включен.
Идентификатор: 42028
Предупреждения о повторяющихся или перекрывающихся блоках перехвата
Создается, когда Catch блок оказывается недоступным из-за его связи с другими Catch блоками, которые были определены. По умолчанию для новых проектов включен.
Идентификатор: 42029, 42031