Expression.Lambda Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает дерево выражений, представляющее лямбда-выражение.
Перегрузки
| Имя | Описание |
|---|---|
| Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>) |
LambdaExpression Создает место, где тип делегата известен во время компиляции с именем лямбда-файла, параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также перечисленная коллекция выражений параметров. |
| Lambda(Type, Expression, String, IEnumerable<ParameterExpression>) |
LambdaExpression Создает место, где тип делегата известен во время компиляции с именем лямбда-выражения и перечисленной коллекцией выражений параметров. |
| Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>) |
LambdaExpression Создает место, где тип делегата известен во время компиляции с параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также перечисление коллекции выражений параметров. |
| Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>) |
LambdaExpression Создает путем создания типа делегата из текста выражения, имени лямбда-файла, параметра, указывающего, будет ли применена оптимизация хвостового вызова, а также перечисленная коллекция выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции. |
| Lambda(Type, Expression, ParameterExpression[]) |
LambdaExpression Создает место, где тип делегата известен во время компиляции с массивом выражений параметров. |
| Lambda(Type, Expression, Boolean, ParameterExpression[]) |
LambdaExpression Создает место, где тип делегата известен во время компиляции с параметром, который указывает, будет ли применяться оптимизация хвостового вызова, а также массив выражений параметров. |
| Lambda(Expression, String, IEnumerable<ParameterExpression>) |
Создает путем LambdaExpression создания типа делегата из текста выражения, имени лямбда-выражения и перечисленной коллекции выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции. |
| Lambda(Expression, Boolean, ParameterExpression[]) |
LambdaExpression Создает путем создания типа делегата из текста выражения, параметра, указывающего, будет ли применяться оптимизация хвостового вызова, а также массив выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции. |
| Lambda(Expression, Boolean, IEnumerable<ParameterExpression>) |
LambdaExpression Создает сначала создание типа делегата из текста выражения, параметр, указывающий, будет ли применяться оптимизация хвостового вызова, а также перечисление коллекции выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции. |
| Lambda(Type, Expression, IEnumerable<ParameterExpression>) |
Создает место LambdaExpression , где тип делегата известен во время компиляции с перечисленной коллекцией выражений параметров. |
| Lambda(Expression, ParameterExpression[]) |
Создает путем LambdaExpression создания типа делегата из текста выражения и массива выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции. |
| Lambda(Expression, IEnumerable<ParameterExpression>) |
Создает, LambdaExpression сначала создав тип делегата из текста выражения и перечисленную коллекцию выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции. |
| Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>) |
Expression<TDelegate> Создает место, где тип делегата известен во время компиляции с именем лямбда-лямбда- и перечисленной коллекцией выражений параметров. |
| Lambda<TDelegate>(Expression, Boolean, ParameterExpression[]) |
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции, с параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также массив выражений параметров. |
| Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>) |
Expression<TDelegate> Создает место, где тип делегата известен во время компиляции с именем лямбда-файла, параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также перечисленная коллекция выражений параметров. |
| Lambda<TDelegate>(Expression, ParameterExpression[]) |
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции с массивом выражений параметров. |
| Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>) |
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции с перечисленной коллекцией выражений параметров. |
| Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>) |
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции, с параметром, указывающим, будет ли применяться оптимизация вызова хвоста, а также перечисленная коллекция выражений параметров. |
Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает место, где тип делегата известен во время компиляции с именем лямбда-файла, параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также перечисленная коллекция выражений параметров.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, System::String ^ name, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, name As String, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- name
- String
Имя лямбда-кода. Используется для создания сведений отладки.
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
Применяется к
Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает место, где тип делегата известен во время компиляции с именем лямбда-выражения и перечисленной коллекцией выражений параметров.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, System::String ^ name, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, name As String, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- name
- String
Имя лямбда-кода. Используется для создания сведений отладки.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
Применяется к
Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает место, где тип делегата известен во время компиляции с параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также перечисление коллекции выражений параметров.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
Применяется к
Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает путем создания типа делегата из текста выражения, имени лямбда-файла, параметра, указывающего, будет ли применена оптимизация хвостового вызова, а также перечисленная коллекция выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, name As String, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- name
- String
Имя лямбда-кода. Используется для создания сведений отладки.
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
- Атрибуты
Применяется к
Lambda(Type, Expression, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает место, где тип делегата известен во время компиляции с массивом выражений параметров.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, ParamArray parameters As ParameterExpression()) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- parameters
- ParameterExpression[]
Массив объектов, используемых ParameterExpression для заполнения Parameters коллекции.
Возвращаемое значение
Объект, представляющий лямбда-выражение, которое имеет NodeType свойство, равное Lambda и BodyParameters свойства, заданные указанным значениям.
Исключения
delegateType или body есть null.
–или–
Одним или несколькими элементами являются parametersnull.
delegateType не представляет тип делегата.
–или–
body. Тип представляет тип, который не может назначаться возвращаемому типу делегата, delegateTypeпредставленному .
–или–
parameters не содержит то же количество элементов, что и список параметров для типа делегата, представленного delegateType.
–или–
Type Свойство элемента parameters не назначается из типа соответствующего типа параметра типа делегата, представленного delegateType.
Комментарии
Объект, возвращаемый из этой функции, имеет тип Expression<TDelegate>. Тип LambdaExpression используется для представления возвращаемого объекта, так как конкретный тип лямбда-выражения не известен во время компиляции.
Число параметров для типа делегата, представленного равным delegateType длине parameters.
Элементы parameters должны быть ссылаться на выражения параметров в body.
Свойство Type результирующего объекта равно delegateType. В противном parameters случае nullParameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda(Type, Expression, Boolean, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает место, где тип делегата известен во время компиляции с параметром, который указывает, будет ли применяться оптимизация хвостового вызова, а также массив выражений параметров.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- ParameterExpression[]
Массив, содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
Применяется к
Lambda(Expression, String, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает путем LambdaExpression создания типа делегата из текста выражения, имени лямбда-выражения и перечисленной коллекции выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, name As String, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- name
- String
Имя лямбда-кода. Используется для создания сведений отладки.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
- Атрибуты
Применяется к
Lambda(Expression, Boolean, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает путем создания типа делегата из текста выражения, параметра, указывающего, будет ли применяться оптимизация хвостового вызова, а также массив выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- ParameterExpression[]
Массив, содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
- Атрибуты
Применяется к
Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
LambdaExpression Создает сначала создание типа делегата из текста выражения, параметр, указывающий, будет ли применяться оптимизация хвостового вызова, а также перечисление коллекции выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
- Атрибуты
Применяется к
Lambda(Type, Expression, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает место LambdaExpression , где тип делегата известен во время компиляции с перечисленной коллекцией выражений параметров.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Объект, представляющий лямбда-выражение, которое имеет NodeType свойство, равное Lambda и BodyParameters свойства, заданные указанным значениям.
Исключения
delegateType или body есть null.
–или–
Одним или несколькими элементами являются parametersnull.
delegateType не представляет тип делегата.
–или–
body. Тип представляет тип, который не может назначаться возвращаемому типу делегата, delegateTypeпредставленному .
–или–
parameters не содержит то же количество элементов, что и список параметров для типа делегата, представленного delegateType.
–или–
Type Свойство элемента parameters не назначается из типа соответствующего типа параметра типа делегата, представленного delegateType.
Примеры
В следующем примере показано, как создать выражение, представляющее лямбда-выражение, которое добавляет 1 в переданный аргумент.
// Add the following directive to your file:
// using System.Linq.Expressions;
// A parameter for the lambda expression.
ParameterExpression paramExpr = Expression.Parameter(typeof(int), "arg");
// This expression represents a lambda expression
// that adds 1 to the parameter value.
LambdaExpression lambdaExpr = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
new List<ParameterExpression>() { paramExpr }
);
// Print out the expression.
Console.WriteLine(lambdaExpr);
// Compile and run the lamda expression.
// The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1));
// This code example produces the following output:
//
// arg => (arg +1)
// 2
' Add the following directive to your file:
' Imports System.Linq.Expressions
' A parameter for the lambda expression.
Dim paramExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "arg")
' This expression represents a lambda expression
' that adds 1 to the parameter value.
Dim lambdaExpr As LambdaExpression = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
New List(Of ParameterExpression)() From {paramExpr}
)
' Print out the expression.
Console.WriteLine(lambdaExpr)
' Compile and run the lamda expression.
' The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1))
' This code example produces the following output:
'
' arg => (arg +1)
' 2
Комментарии
Объект, возвращаемый из этой функции, имеет тип Expression<TDelegate>. Тип LambdaExpression используется для представления возвращаемого объекта, так как конкретный тип лямбда-выражения не известен во время компиляции.
Число параметров для типа делегата, представленного равнымdelegateType длине parameters.
Элементы parameters должны быть ссылаться на выражения параметров в body.
Свойство Type результирующего объекта равно delegateType. В противном parameters случае nullParameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda(Expression, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает путем LambdaExpression создания типа делегата из текста выражения и массива выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, ParamArray parameters As ParameterExpression()) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- parameters
- ParameterExpression[]
Массив объектов, используемых ParameterExpression для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression , равное свойству NodeTypeLambda и BodyParameters свойствам, заданным указанным значениям.
- Атрибуты
Исключения
parameters содержит более шестнадцати элементов.
Комментарии
Параметр parameters не должен содержать более шестнадцати элементов.
Элементы parameters должны быть ссылаться на выражения параметров в body.
Этот метод создает соответствующий тип делегата из одного из System.Func универсальных делегатов. Затем он передает тип делегата одному из Lambda методов фабрики для создания LambdaExpression.
Применяется к
Lambda(Expression, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает, LambdaExpression сначала создав тип делегата из текста выражения и перечисленную коллекцию выражений параметров. Его можно использовать, если тип делегата не известен во время компиляции.
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение LambdaExpression свойства, равное NodeType лямбда- и BodyParameters свойствам, заданным указанным значениям.
- Атрибуты
Применяется к
Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Expression<TDelegate> Создает место, где тип делегата известен во время компиляции с именем лямбда-лямбда- и перечисленной коллекцией выражений параметров.
public:
generic <typename TDelegate>
static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, name As String, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)
Параметры типа
- TDelegate
Тип делегата.
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- name
- String
Имя лямбда-лямбда-кода. Используется для создания сведений об отладке.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение Expression<TDelegate> , равное свойству NodeTypeLambda и BodyParameters свойствам, заданным указанным значениям.
Применяется к
Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции, с параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также массив выражений параметров.
public:
generic <typename TDelegate>
static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As Expression(Of TDelegate)
Параметры типа
- TDelegate
Тип делегата.
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- ParameterExpression[]
Массив, содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение Expression<TDelegate> , равное свойству NodeTypeLambda и BodyParameters свойствам, заданным указанным значениям.
Применяется к
Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Expression<TDelegate> Создает место, где тип делегата известен во время компиляции с именем лямбда-файла, параметром, указывающим, будет ли применяться оптимизация хвостового вызова, а также перечисленная коллекция выражений параметров.
public:
generic <typename TDelegate>
static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, name As String, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)
Параметры типа
- TDelegate
Тип делегата.
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- name
- String
Имя лямбда-лямбда-кода. Используется для создания сведений об отладке.
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение Expression<TDelegate> , равное свойству NodeTypeLambda и BodyParameters свойствам, заданным указанным значениям.
Применяется к
Lambda<TDelegate>(Expression, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции с массивом выражений параметров.
public:
generic <typename TDelegate>
static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, ParamArray parameters As ParameterExpression()) As Expression(Of TDelegate)
Параметры типа
- TDelegate
Тип делегата.
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- parameters
- ParameterExpression[]
Массив объектов, используемых ParameterExpression для заполнения Parameters коллекции.
Возвращаемое значение
Значение Expression<TDelegate> , равное свойству NodeTypeLambda и BodyParameters свойствам, заданным указанным значениям.
Исключения
body равно null.
–или–
Одним или несколькими элементами являются parametersnull.
TDelegate не является типом делегата.
–или–
body. Тип представляет тип, который нельзя назначить возвращаемому типу TDelegate.
–или–
parameters не содержит одинаковое количество элементов, что и список параметров для TDelegate.
–или–
Type Свойство элемента parameters не может назначаться из типа соответствующего типа TDelegateпараметра.
Комментарии
Число параметров для типа TDelegate делегата должно совпадать с количеством элементов в parameters.
Элементы parameters должны быть ссылаться на выражения параметров вbody.
Свойство Type результирующего объекта представляет тип TDelegate. В противном parameters случае nullParameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции с перечисленной коллекцией выражений параметров.
public:
generic <typename TDelegate>
static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)
Параметры типа
- TDelegate
Тип делегата.
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение Expression<TDelegate> , равное свойству NodeTypeLambda и BodyParameters свойствам, заданным указанным значениям.
Исключения
body равно null.
–или–
Одним или несколькими элементами являются parametersnull.
TDelegate не является типом делегата.
–или–
body. Тип представляет тип, который нельзя назначить возвращаемому типу TDelegate.
–или–
parameters не содержит одинаковое количество элементов, что и список параметров для TDelegate.
–или–
Type Свойство элемента parameters не может назначаться из типа соответствующего типа TDelegateпараметра.
Комментарии
Число параметров для типа TDelegate делегата должно совпадать с количеством элементов в parameters.
Элементы parameters должны быть ссылаться на выражения параметров в body.
Свойство Type результирующего объекта представляет тип TDelegate. В противном parameters случае nullParameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает место Expression<TDelegate> , где тип делегата известен во время компиляции, с параметром, указывающим, будет ли применяться оптимизация вызова хвоста, а также перечисленная коллекция выражений параметров.
public:
generic <typename TDelegate>
static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)
Параметры типа
- TDelegate
Тип делегата.
Параметры
- body
- Expression
Значение Expression , равное свойству Body .
- tailCall
- Boolean
Значение, Boolean указывающее, будет ли применена оптимизация хвостового вызова при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
Объект IEnumerable<T> , содержащий ParameterExpression объекты, используемые для заполнения Parameters коллекции.
Возвращаемое значение
Значение Expression<TDelegate> , равное свойству NodeTypeLambda и BodyParameters свойствам, заданным указанным значениям.