Expression<TDelegate>.Compile Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| Compile() |
Компилирует лямбда-выражение, описанное деревом выражений, в исполняемый код и создает делегат, представляющий лямбда-выражение. |
| Compile(Boolean) |
Компилирует лямбда-выражение, описанное деревом выражений, в интерпретированный или скомпилированный код и создает делегат, представляющий лямбда-выражение. |
| Compile(DebugInfoGenerator) |
Создает делегат, представляющий лямбда-выражение. |
Compile()
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Компилирует лямбда-выражение, описанное деревом выражений, в исполняемый код и создает делегат, представляющий лямбда-выражение.
public:
TDelegate Compile();
public TDelegate Compile();
override this.Compile : unit -> 'Delegate
Public Function Compile () As TDelegate
Возвращаемое значение
Делегат типа TDelegate , представляющий скомпилированное лямбда-выражение, описанное в описании Expression<TDelegate>.
Примеры
В следующем примере кода показано, как Compile используется для выполнения дерева выражений.
// Lambda expression as data in the form of an expression tree.
System.Linq.Expressions.Expression<Func<int, bool>> expr = i => i < 5;
// Compile the expression tree into executable code.
Func<int, bool> deleg = expr.Compile();
// Invoke the method and print the output.
Console.WriteLine("deleg(4) = {0}", deleg(4));
/* This code produces the following output:
deleg(4) = True
*/
' Lambda expression as data in the form of an expression tree.
Dim expression As System.Linq.Expressions.Expression(Of Func(Of Integer, Boolean)) = Function(ByVal i) i < 5
' Compile the expression tree into executable code.
Dim deleg As Func(Of Integer, Boolean) = expression.Compile()
' Invoke the method and print the output.
MsgBox(String.Format("deleg(4) = {0}", deleg(4)))
' This code produces the following output:
'
' deleg(4) = True
Комментарии
Метод Compile создает делегат типа TDelegate во время выполнения. При выполнении этого делегата он имеет поведение, описанное семантикой этого Expression<TDelegate>делегата.
Метод Compile можно использовать для получения значения любого дерева выражений. Сначала создайте лямбда-выражение, которое имеет выражение в качестве тела с помощью Lambda метода. Затем вызовите Compile получение делегата и выполните делегат, чтобы получить значение выражения.
Применяется к
Compile(Boolean)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Компилирует лямбда-выражение, описанное деревом выражений, в интерпретированный или скомпилированный код и создает делегат, представляющий лямбда-выражение.
public:
TDelegate Compile(bool preferInterpretation);
public TDelegate Compile(bool preferInterpretation);
override this.Compile : bool -> 'Delegate
Public Function Compile (preferInterpretation As Boolean) As TDelegate
Параметры
- preferInterpretation
- Boolean
true Значение , указывающее, что выражение должно быть скомпилировано в интерпретируемой форме, если оно доступно; false Иначе.
Возвращаемое значение
Делегат, представляющий скомпилированное лямбда-выражение, описанное в разделе Expression<TDelegate>.
Применяется к
Compile(DebugInfoGenerator)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает делегат, представляющий лямбда-выражение.
public:
TDelegate Compile(System::Runtime::CompilerServices::DebugInfoGenerator ^ debugInfoGenerator);
public TDelegate Compile(System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator);
override this.Compile : System.Runtime.CompilerServices.DebugInfoGenerator -> 'Delegate
Public Function Compile (debugInfoGenerator As DebugInfoGenerator) As TDelegate
Параметры
- debugInfoGenerator
- DebugInfoGenerator
Генератор сведений отладки, используемый компилятором для маркировки точек последовательности и анимирования локальных переменных.
Возвращаемое значение
Делегат, содержащий скомпилированную версию лямбда-файла.