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, 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);

Параметры

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, 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);

Параметры

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);

Параметры

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, 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);

Параметры

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, 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);

Параметры

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, 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);

Параметры

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, 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);

Параметры

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, 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);

Параметры

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);

Параметры

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);

Параметры

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

Комментарии

Объект, возвращаемый этой функцией, имеет тип 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, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);

Параметры

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);

Параметры

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 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);

Параметры типа

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 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);

Параметры типа

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 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);

Параметры типа

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 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);

Параметры типа

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 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);

Параметры типа

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 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);

Параметры типа

TDelegate

Тип делегата.

Параметры

body
Expression

Объект Expression, который следует задать в качестве значения свойства Body.

tailCall
Boolean

Значение Boolean, которое указывает, следует ли использовать оптимизацию вызовов с префиксом tail при компиляции созданного выражения.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>, содержащий все объекты ParameterExpression, используемые для заполнения коллекции Parameters.

Возвращаемое значение

Выражение Expression<TDelegate>, содержащее свойство NodeType, равное Lambda, а также свойства Body и Parameters, для которых заданы указанные значения.

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