Expression.Lambda Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает дерево выражений, которое представляет лямбда-выражение.
Перегрузки
Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>) |
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с именем для лямбда-функции, параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров. |
Lambda(Type, Expression, String, IEnumerable<ParameterExpression>) |
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с именем для лямбда-функции и перечисляемой коллекцией выражений параметров. |
Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>) |
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail, а также перечисляемую коллекцию выражений параметров. |
Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>) |
Создает LambdaExpression, создавая сначала тип делегата из тела выражения, имя для лямбда-функции, параметр, указывающий, следует ли использовать оптимизацию вызовов с префиксом tail, а также перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции. |
Lambda(Type, Expression, ParameterExpression[]) |
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с массивом выражений параметров. |
Lambda(Type, Expression, Boolean, ParameterExpression[]) |
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail, а также массив выражений параметров. |
Lambda(Expression, String, IEnumerable<ParameterExpression>) |
Создает LambdaExpression, создавая сначала тип делегата из тела выражения, имя для лямбда-функции и перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции. |
Lambda(Expression, Boolean, ParameterExpression[]) |
Создает LambdaExpression, создавая сначала тип делегата из тела выражения, параметр, указывающий, следует ли использовать оптимизацию вызовов с префиксом tail, а также массив выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции. |
Lambda(Expression, Boolean, IEnumerable<ParameterExpression>) |
Создает LambdaExpression, создавая сначала тип делегата из тела выражения, параметр, указывающий, следует ли использовать оптимизацию вызовов с префиксом tail, а также перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции. |
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>, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и массивом выражений параметров. |
Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>) |
Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с именем для лямбда-функции, параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров. |
Lambda<TDelegate>(Expression, ParameterExpression[]) |
Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с массивом выражений параметров. |
Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>) |
Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с перечисляемой коллекцией выражений параметров. |
Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>) |
Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров. |
Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с именем для лямбда-функции, параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров.
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, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>, содержащий все объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение LambdaExpression, у которого свойство NodeType равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)
- Исходный код:
- 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 равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail, а также перечисляемую коллекцию выражений параметров.
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, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>, содержащий все объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение LambdaExpression, у которого свойство NodeType равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает LambdaExpression, создавая сначала тип делегата из тела выражения, имя для лямбда-функции, параметр, указывающий, следует ли использовать оптимизацию вызовов с префиксом tail, а также перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции.
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);
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
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, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>, содержащий все объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение LambdaExpression, у которого свойство NodeType равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Type, Expression, ParameterExpression[])
- Исходный код:
- 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 и Body, и свойства Parameters, для которых заданы указанные значения.
Исключения
Параметр delegateType
или body
имеет значение null
.
-или-
Один или несколько элементов в parameters
имеют значение null
.
Тип delegateType
не представляет тип делегата.
-или-
Тип body
.Type представляет тип, который не может быть назначен для типа возврата типа делегата, представленного delegateType
.
-или-
parameters
не содержит количество элементов, равное количеству списка параметров для типа делегата, представленного delegateType
.
-или-
Свойство Type элемента parameters
нельзя назначить от типа соответствующего типа параметра типа делегата, представленного через delegateType
.
Комментарии
Объект, возвращаемый этой функцией, имеет тип Expression<TDelegate>. Тип LambdaExpression используется для представления возвращаемого объекта, так как конкретный тип лямбда-выражения неизвестен во время компиляции.
Число параметров для типа делегата, представленного , delegateType
должно равняться длине parameters
.
На элементы parameters
должны быть ссылки, равные выражениям параметров в body
.
Свойство Type результирующего объекта равно delegateType
. Если parameters
имеет значение null
, Parameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda(Type, Expression, Boolean, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает LambdaExpression, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail, а также массив выражений параметров.
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, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- ParameterExpression[]
Массив, содержащий объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение LambdaExpression, у которого свойство NodeType равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Expression, String, IEnumerable<ParameterExpression>)
- Исходный код:
- 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);
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
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 равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Expression, Boolean, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает LambdaExpression, создавая сначала тип делегата из тела выражения, параметр, указывающий, следует ли использовать оптимизацию вызовов с префиксом tail, а также массив выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции.
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);
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
Public Shared Function Lambda (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression
Параметры
- body
- Expression
Объект Expression, который следует задать в качестве значения свойства Body.
- tailCall
- Boolean
Значение Boolean, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- ParameterExpression[]
Массив, содержащий объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение LambdaExpression, у которого свойство NodeType равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает LambdaExpression, создавая сначала тип делегата из тела выражения, параметр, указывающий, следует ли использовать оптимизацию вызовов с префиксом tail, а также перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции.
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);
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
Public Shared Function Lambda (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
Параметры
- body
- Expression
Объект Expression, который следует задать в качестве значения свойства Body.
- tailCall
- Boolean
Значение Boolean, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>, содержащий все объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение LambdaExpression, у которого свойство NodeType равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda(Type, Expression, IEnumerable<ParameterExpression>)
- Исходный код:
- 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 и Body, и свойства Parameters, для которых заданы указанные значения.
Исключения
Параметр delegateType
или body
имеет значение null
.
-или-
Один или несколько элементов в parameters
имеют значение null
.
Тип delegateType
не представляет тип делегата.
-или-
Тип body
.Type представляет тип, который не может быть назначен для типа возврата типа делегата, представленного 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
имеет значение null
, Parameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda(Expression, ParameterExpression[])
- Исходный код:
- 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);
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
Public Shared Function Lambda (body As Expression, ParamArray parameters As ParameterExpression()) As LambdaExpression
Параметры
- body
- Expression
Объект Expression, который следует задать в качестве значения свойства Body.
- parameters
- ParameterExpression[]
Массив объектов ParameterExpression для заполнения коллекции Parameters.
Возвращаемое значение
Выражение LambdaExpression со свойствомNodeType, равным Lambda, и свойствами Body и Parameters, для которых заданы указанные значения.
Исключения
body
имеет значение null
.
-или-
Один или несколько элементов parameters
имеют значение null
.
Параметр parameters
содержит более шестнадцати элементов.
Комментарии
Параметр parameters
не должен содержать более шестнадцати элементов.
Элементы parameters
должны быть равными выражениям параметров в body
.
Этот метод создает соответствующий тип делегата из одного из System.Func
универсальных делегатов. Затем он передает тип делегата одному из Lambda фабричного метода для создания LambdaExpression.
Применяется к
Lambda(Expression, IEnumerable<ParameterExpression>)
- Исходный код:
- 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);
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
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 равняется лямбда-выражению, а для свойств Body и Parameters заданы указанные значения.
Применяется к
Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)
- Исходный код:
- 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>, содержащее свойство NodeType, равное Lambda, а также свойства Body и Parameters, для которых заданы указанные значения.
Применяется к
Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и массивом выражений параметров.
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, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- ParameterExpression[]
Массив, содержащий объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение Expression<TDelegate>, содержащее свойство NodeType, равное Lambda, а также свойства Body и Parameters, для которых заданы указанные значения.
Применяется к
Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с именем для лямбда-функции, параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров.
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, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>, содержащий все объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение Expression<TDelegate>, содержащее свойство NodeType, равное Lambda, а также свойства Body и Parameters, для которых заданы указанные значения.
Применяется к
Lambda<TDelegate>(Expression, ParameterExpression[])
- Исходный код:
- 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>, содержащее свойство NodeType, равное Lambda, а также свойства Body и Parameters, для которых заданы указанные значения.
Исключения
body
имеет значение null
.
-или-
Один или несколько элементов в parameters
имеют значение null
.
Элемент TDelegate
не является типом делегата.
-или-
Тип body
.Type представляет тип, который не может быть назначен для типа возврата параметра TDelegate
.
-или-
parameters
не содержит количество элементов, равное количеству списка параметров для TDelegate
.
-или-
Свойство Type элемента parameters
нельзя назначить из типа соответствующего параметра TDelegate
.
Комментарии
Число параметров для типа TDelegate
делегата должно равняться количеству элементов в parameters
.
На элементы parameters
должны быть ссылки, равные выражениям параметров вbody
.
Свойство Type результирующего объекта представляет тип TDelegate
. Если parameters
имеет значение null
, Parameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)
- Исходный код:
- 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>, содержащее свойство NodeType, равное Lambda, а также свойства Body и Parameters, для которых заданы указанные значения.
Исключения
body
имеет значение null
.
-или-
Один или несколько элементов в parameters
имеют значение null
.
Элемент TDelegate
не является типом делегата.
-или-
Тип body
.Type представляет тип, который не может быть назначен для типа возврата параметра TDelegate
.
-или-
parameters
не содержит количество элементов, равное количеству списка параметров для TDelegate
.
-или-
Свойство Type элемента parameters
нельзя назначить из типа соответствующего параметра TDelegate
.
Комментарии
Число параметров для типа TDelegate
делегата должно равняться количеству элементов в parameters
.
На элементы parameters
должны быть ссылки, равные выражениям параметров в body
.
Свойство Type результирующего объекта представляет тип TDelegate
. Если parameters
имеет значение null
, Parameters свойство результирующего объекта является пустой коллекцией.
Применяется к
Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
- Исходный код:
- LambdaExpression.cs
Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров.
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, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>, содержащий все объекты ParameterExpression, используемые для заполнения коллекции Parameters.
Возвращаемое значение
Выражение Expression<TDelegate>, содержащее свойство NodeType, равное Lambda, а также свойства Body и Parameters, для которых заданы указанные значения.