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


Debugger2.ExecuteStatement - метод (String, Int32, Boolean)

Выполняет указанный оператор. Если флаг TreatAsExpression принимает значение true, строка интерпретируется как выражение и результат направляется в Окно "Команда".

Пространство имен:  EnvDTE80
Сборка:  EnvDTE80 (в EnvDTE80.dll)

Синтаксис

'Декларация
Sub ExecuteStatement ( _
    Statement As String, _
    Timeout As Integer, _
    TreatAsExpression As Boolean _
)
void ExecuteStatement(
    string Statement,
    int Timeout,
    bool TreatAsExpression
)
void ExecuteStatement(
    [InAttribute] String^ Statement, 
    [InAttribute] int Timeout, 
    [InAttribute] bool TreatAsExpression
)
abstract ExecuteStatement : 
        Statement:string * 
        Timeout:int * 
        TreatAsExpression:bool -> unit 
function ExecuteStatement(
    Statement : String, 
    Timeout : int, 
    TreatAsExpression : boolean
)

Параметры

  • Timeout
    Тип: System.Int32
    Период ожидания, заданный в миллисекундах.
  • TreatAsExpression
    Тип: System.Boolean
    Значение true, если строку следует интерпретировать как выражение; в противном случае — значение false.

Реализации

Debugger.ExecuteStatement(String, Int32, Boolean)

Заметки

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

Некоторые языки, например, Visual Basic, поддерживают синтаксис, в котором способ обработки оператора определяется контекстом, в котором он находится. Например, если в коде Visual Basic используется оператор a = 1, то он интерпретируется как выражение, если код находится в операторе If…Then. Он интерпретируется как оператор, если находится на одной строке. Выражение проверяет a на равенство 1, оператор установит a равным 2. См. пример ниже.

Результат выполнения этого метода направляется в окно Окно "Команда".

Примеры

В следующем примере показано, как использовать метод ExecuteStatement.

Тестирование данного метода:

  1. Задайте точку останова в целевом приложении после присваивания переменной значения.

  2. Запустите приложение в режиме отладки.

  3. Когда выполнение приложения остановится в точке останова, запустите надстройку.

  4. Значение переменной изменяется на новое значение.

public static void ExecuteStatement(EnvDTE80.DTE2 dte)
{
    // Setup debug Output window.
    Window w = 
    (Window)dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput);
    w.Visible = true;
    OutputWindow ow = (OutputWindow)w.Object;
    OutputWindowPane owp = ow.OutputWindowPanes.Add("ExecuteStatement 
    Method Test");
    owp.Activate();

    EnvDTE80.Debugger2 debugger = (EnvDTE80.Debugger2)dte.Debugger;
    debugger.ExecuteStatement("tempC = 100.0", 100, false);
    owp.OutputString("The new value of tempC variable is: " + 
                     debugger.GetExpression("tempC", false, 1).Value);
}
' The following executes a statement, effectively
' setting a to the value of 2.
Sub SetVariable()
    DTE2.Debugger.ExecuteStatement("a = 2", -1, False)
End Sub

' The following tests the value of a against
' the value of 2.  False is displayed in the command window.

Sub TestVariable()
    DTE2.Debugger.ExecuteStatement("a = 2", -1, True)
End Sub

Безопасность платформы .NET Framework

См. также

Ссылки

Debugger2 Интерфейс

ExecuteStatement - перегрузка

EnvDTE80 - пространство имен