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
)
Параметры
- Statement
Тип: System.String
- 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.
Тестирование данного метода:
Задайте точку останова в целевом приложении после присваивания переменной значения.
Запустите приложение в режиме отладки.
Когда выполнение приложения остановится в точке останова, запустите надстройку.
Значение переменной изменяется на новое значение.
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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.