Поделиться через


Выражения в Visual Basic

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

-c конец_команды

-c конец_команды

Web Developer

Express

Тема применяется Тема не применяется Тема не применяется Тема применяется

Standard

Тема применяется Тема не применяется Тема не применяется Тема применяется

Pro и Team

Тема применяется Тема не применяется Тема не применяется Тема применяется

Условные обозначения:

Тема применяется

Применяется

Тема не применяется

Не применяется

Тема применяется, но команда по умолчанию сокрыта

Команда или команды по умолчанию скрыты.

Вычислитель выражений управляемого кода может обрабатывать большинство выражений на Visual Basic. В окне Просмотр значений переменных средство оценки выражений поддерживает только однострочные инструкции.

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

  • Идентификаторы и типы

  • Вычисление функций

  • Операторы

  • Неподдерживаемые зарезервированные слова

  • Строки

  • Приведение типов

  • Оператор TypeOf

  • Переменные объектов, содержащие встроенные типы

  • Вычисление свойств

  • WebMethods

  • Объявления переменных

Visual Basic не поддерживает правила автоподстановки для отображения содержимого типа данных в удобочитаемом виде. Дополнительные сведения см. в разделе Отображение элементов пользовательского типа данных.

Приведение типов

В отладчике поддерживается простое приведение типов:

A = CStr(B)

Вычисление функций

Отладчик поддерживает вычисление функций, в том числе перегруженных. Поэтому при вводе любого из следующих выражений отладчик вызовет нужную версию перегруженной функции:

myFunction (param1)

myFunction (param1, param2)

При вычислении функции в отладчике вызывается и выполняется код этой функции. Если при выполнении функции возникают побочные эффекты, такие как выделение памяти или изменение значения глобальной переменной, то вычисление функции в окне отладчика приведет к изменению состояния программы, что может повлечь за собой непредвиденные результаты.

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

Идентификаторы и типы

В выражениях отладчика можно использовать любые идентификаторы, отображающиеся в текущей области. Например, если отладчик остановлен во время выполнения функции Magh, то можно использовать большинство идентификаторов, доступных в области видимости Magh, в том числе имена переменных и имена функций. Локальные константы не поддерживаются. Можно установить значение любой переменной, доступной в текущей области видимости.

Отладчик правильно отображает все переменные простых и встроенных типов. Для переменных типа класса отладчик правильно отображает значение на основе ближайшего производного типа. Если имеется объект leo типа Lion, производный от типа Cat, то можно вычислить leo.Clawlength и получить правильное значение для объекта типа Lion.

Импорт псевдонимов

В окнах отладчика не поддерживается импорт псевдонимов.

Переменные объектов, содержащие встроенные типы

Переменные объектов, содержащие встроенные типы переменных, такие как integer, отображаются и редактируются способом, который может показаться нелогичным. Предположим, например, что исходный код содержит переменную объекта, подобную этой:

Dim obj As Object = 5

Окно Контрольные значения показывает значение переменной obj как:

5 {Integer}

Чтобы заменить значение этой переменной на 6, необходимо ввести:

6

Не следует вводить:

6 {Integer}

После изменения значения, можно заметить, что отладчик добавляет {Integer} за вас.

Операторы

Отладчик правильно вычисляет большинство операторов, в том числе перечисленные ниже.

  • Арифметические операторы: ( expr1 + expr2, expr1 - expr2, expr1 * expr2, expr1 / expr2, expr1\expr2, expr1^expr2 , expr1Modexpr2 ).

  • Операторы присваивания: ( var1 = expr2, var1 ^= expr2, var1 *= expr2, var1 /= expr2, var1 \= expr2, var1 += expr2, var1 -= expr2, var1 &= expr2).

  • Comparison operators: (expr2 < expr2, expr2 <= expr2, expr1 > expr2, expr1 >= expr2, expr1 = expr2, expr1 <> expr2).

  • Операторы сцепления: (expr1 & expr2, expr1 + expr2).

  • Логические операторы: (expr1 And expr2, expr1 Or expr2, expr1 XOr expr2, expr1 AndAlso expr2, expr1 OrElse expr2, Notexpr1).

  • Унарные операторы: ( - expr1, Not expr1, GetType (type) ).

Вычисление свойств

Отладчик может вычислять свойства в любом окне переменной. Однако вычисление свойств в отладчике может иметь побочные эффекты (например, вызывать изменение значений переменных), которые повлияют на результаты работы программы. Чтобы избежать побочных эффектов, вызванных случайными вычислениями, можно отключить поддержку вычисления свойств в диалоговом окне Общие параметры отладки.

Строки

В Visual Basic можно использовать оператор Length в строке:

mystring.Length

-или-

"hello world".Length

Оператор TypeOf

В Visual Basic можно использовать оператор TypeOf в окнах отладчика:

TypeOf выражение Is type

Например:

TypeOf Me Is Integer

отображает значение false.

Если вы используете TypeOf, то он должен входить в состав выражения, содержащего ключевое слово Is. Если оператор TypeOf используется без Is, то появится следующее сообщение об ошибке:

Is required

Неподдерживаемые зарезервированные слова

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

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

Кроме того, не поддерживаются зарезервированные слова пространства имен или модуля, например End Sub или Module.

Объявления переменных

В окнах отладчика не поддерживается явное объявление новых переменных.

Однако можно присвоить какое-либо значение неявной переменной в окне Просмотр значений переменных. Эти неявные переменные инкапсулированы в области отладчика и не доступны вне отладчика. Например инструкция o = 5 неявно создаст переменную o и присвоит ей значение 5. Такие неявные переменные имеют тип Object, если тип не будет задан отладчиком.

WebMethods

Вызов веб–методов в окнах отладчика не поддерживается.

См. также

Другие ресурсы

Выражения в отладчике

Справочник по Visual Basic