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


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

Параметры

delegateType
Type

Объект Type, представляющий сигнатуру делегата для лямбда-выражения.

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

Параметры

delegateType
Type

Объект Type, представляющий сигнатуру делегата для лямбда-выражения.

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

Параметры

delegateType
Type

Объект Type, представляющий сигнатуру делегата для лямбда-выражения.

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

Параметры

delegateType
Type

Тип Type, представляющий сигнатуру делегата для лямбда-выражения.

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

Параметры

delegateType
Type

Объект Type, представляющий сигнатуру делегата для лямбда-выражения.

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

Параметры

delegateType
Type

Тип Type, представляющий сигнатуру делегата для лямбда-выражения.

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, для которых заданы указанные значения.

Применяется к