Expression Класс

Определение

Предоставляет базовый класс, производными от которого являются классы, представляющие узлы дерева выражения. Также содержит методы фабрики static (Shared в Visual Basic) для создания различных типов узлов. Это класс abstract.

public ref class Expression abstract
public abstract class Expression
type Expression = class
Public MustInherit Class Expression
Наследование
Expression
Производный

Примеры

В следующем примере кода показано, как создать выражение блока. Выражение блока состоит из двух MethodCallExpression объектов и одного ConstantExpression объекта .

// Add the following directive to your file:
// using System.Linq.Expressions;

// The block expression allows for executing several expressions sequentually.
// When the block expression is executed,
// it returns the value of the last expression in the sequence.
BlockExpression blockExpr = Expression.Block(
    Expression.Call(
        null,
        typeof(Console).GetMethod("Write", new Type[] { typeof(String) }),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        null,
        typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
);

Console.WriteLine("The result of executing the expression tree:");
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
var result = Expression.Lambda<Func<int>>(blockExpr).Compile()();

// Print out the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:");
foreach (var expr in blockExpr.Expressions)
    Console.WriteLine(expr.ToString());

// Print out the result of the tree execution.
Console.WriteLine("The return value of the block expression:");
Console.WriteLine(result);

// This code example produces the following output:
//
// The result of executing the expression tree:
// Hello World!

// The expressions from the block expression:
// Write("Hello ")
// WriteLine("World!")
// 42

// The return value of the block expression:
// 42
' Add the following directive to your file:
' Imports System.Linq.Expressions

' The block expression enables you to execute several expressions sequentually.
' When the block expression is executed,
' it returns the value of the last expression in the sequence.
Dim blockExpr As BlockExpression = Expression.Block(
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("Write", New Type() {GetType(String)}),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
)

Console.WriteLine("The result of executing the expression tree:")
' The following statement first creates an expression tree,
' then compiles it, and then executes it.           
Dim result = Expression.Lambda(Of Func(Of Integer))(blockExpr).Compile()()

' Print the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:")
For Each expr In blockExpr.Expressions
    Console.WriteLine(expr.ToString())
Next

' Print the result of the tree execution.
Console.WriteLine("The return value of the block expression:")
Console.WriteLine(result)

' This code example produces the following output:
'
' The result of executing the expression tree:
' Hello World!

' The expressions from the block expression:
' Write("Hello ")
' WriteLine("World!")
' 42

' The return value of the block expression:
' 42

Конструкторы

Expression()

Создает новый экземпляр класса Expression.

Expression(ExpressionType, Type)
Устаревшие..
Устаревшие..

Инициализирует новый экземпляр класса Expression.

Свойства

CanReduce

Указывает, что узел можно сократить до более простого. Если возвращается значение true, для получения сокращенной формы можно вызвать Reduce().

NodeType

Получает тип узла данного объекта Expression.

Type

Получает статичный тип выражения, представленного этим выражением Expression.

Методы

Accept(ExpressionVisitor)

Отправляет в конкретный метод Visit для данного типа узла. Например, объект MethodCallExpression вызывает метод VisitMethodCall(MethodCallExpression).

Add(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию арифметического сложения, не содержащую проверку переполнения.

Add(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию арифметического сложения, не содержащую проверку переполнения. Может быть указан метод реализации.

AddAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания сложения, не содержащую проверку переполнения.

AddAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания сложения, не содержащую проверку переполнения.

AddAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания сложения, не содержащую проверку переполнения.

AddAssignChecked(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания сложения, содержащую проверку переполнения.

AddAssignChecked(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания сложения, содержащую проверку переполнения.

AddAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания сложения, содержащую проверку переполнения.

AddChecked(Expression, Expression)

Создает BinaryExpression, представляющий операцию арифметического сложения, содержащую проверку переполнения.

AddChecked(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий операцию арифметического сложения, содержащую проверку переполнения. Может быть указан метод реализации.

And(Expression, Expression)

Создает выражение BinaryExpression, представляющее битовую операцию AND.

And(Expression, Expression, MethodInfo)

Создает выражение BinaryExpression, представляющее битовую операцию AND. Может быть указан метод реализации.

AndAlso(Expression, Expression)

Создает выражение BinaryExpression, представляющее условную операцию AND, вычисляющую второй операнд, только если первый операнд имеет значение true.

AndAlso(Expression, Expression, MethodInfo)

Создает выражение BinaryExpression, представляющее условную операцию AND, вычисляющую второй операнд, только если первый операнд имеет значение true. Может быть указан метод реализации.

AndAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания AND.

AndAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий битовую операцию присваивания AND.

AndAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания AND.

ArrayAccess(Expression, Expression[])

Создает объект IndexExpression для доступа к массиву.

ArrayAccess(Expression, IEnumerable<Expression>)

Создает объект IndexExpression для доступа к многомерному массиву.

ArrayIndex(Expression, Expression)

Создает BinaryExpression, представляющее применение оператора индекса массива к массиву ранга один.

ArrayIndex(Expression, Expression[])

Создает выражение MethodCallExpression, представляющее применение оператора индекса массива к многомерному массиву.

ArrayIndex(Expression, IEnumerable<Expression>)

Создает MethodCallExpression, представляющее применение оператора индекса массива к массиву с рангом более одного.

ArrayLength(Expression)

Создает выражение UnaryExpression для получения длины одномерного массива.

Assign(Expression, Expression)

Создает выражение BinaryExpression, представляющее операцию присваивания.

Bind(MemberInfo, Expression)

Создает объект MemberAssignment, который представляет инициализацию поля или свойства.

Bind(MethodInfo, Expression)

Создает объект MemberAssignment, который представляет инициализацию члена с помощью метода доступа к свойству.

Block(Expression, Expression)

Создает выражение BlockExpression, содержащее два выражения и не содержащее переменных.

Block(Expression, Expression, Expression)

Создает выражение BlockExpression, содержащее три выражения и не содержащее переменных.

Block(Expression, Expression, Expression, Expression)

Создает выражение BlockExpression, содержащее четыре выражения и не содержащее переменных.

Block(Expression, Expression, Expression, Expression, Expression)

Создает выражение BlockExpression, содержащее пять выражений и не содержащее переменных.

Block(Expression[])

Создает объект BlockExpression, содержащий заданные выражения и не содержащий переменных.

Block(IEnumerable<Expression>)

Создает объект BlockExpression, содержащий заданные выражения и не содержащий переменных.

Block(IEnumerable<ParameterExpression>, Expression[])

Создает выражение BlockExpression, содержащее указанные переменные и выражения.

Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)

Создает выражение BlockExpression, содержащее указанные переменные и выражения.

Block(Type, Expression[])

Создает выражение BlockExpression, содержащее данные выражения, не содержащее переменных и имеющее конкретный тип результатов.

Block(Type, IEnumerable<Expression>)

Создает выражение BlockExpression, содержащее данные выражения, не содержащее переменных и имеющее конкретный тип результатов.

Block(Type, IEnumerable<ParameterExpression>, Expression[])

Создает выражение BlockExpression, содержащее указанные переменные и выражения.

Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)

Создает выражение BlockExpression, содержащее указанные переменные и выражения.

Break(LabelTarget)

Создает объект GotoExpression, представляющий оператор break.

Break(LabelTarget, Expression)

Создает объект GotoExpression, представляющий оператор break. Можно указать значение, передаваемое метке при переходе.

Break(LabelTarget, Expression, Type)

Создает выражение GotoExpression, представляющее оператор break с указанным типом. Можно указать значение, передаваемое метке при переходе.

Break(LabelTarget, Type)

Создает выражение GotoExpression, представляющее оператор break с указанным типом.

Call(Expression, MethodInfo)

Создает выражение MethodCallExpression, представляющее вызов метода, не принимающего аргументы.

Call(Expression, MethodInfo, Expression, Expression)

Создает выражение MethodCallExpression, представляющее вызов метода, принимающего два аргумента.

Call(Expression, MethodInfo, Expression, Expression, Expression)

Создает выражение MethodCallExpression, представляющее вызов метода, принимающего три аргумента.

Call(Expression, MethodInfo, Expression[])

Создает выражение MethodCallExpression, представляющее вызов метода, принимающего аргументы.

Call(Expression, MethodInfo, IEnumerable<Expression>)

Создает выражение MethodCallExpression, представляющее вызов метода, принимающего аргументы.

Call(Expression, String, Type[], Expression[])

Создает MethodCallExpression, представляющий вызов для метода, вызывая соответствующий метод фабрики.

Call(MethodInfo, Expression)

Создает выражение MethodCallExpression, представляющее вызов метода static (Shared в Visual Basic), принимающего один аргумент.

Call(MethodInfo, Expression, Expression)

Создает выражение MethodCallExpression, представляющее вызов статического метода, принимающего два аргумента.

Call(MethodInfo, Expression, Expression, Expression)

Создает выражение MethodCallExpression, представляющее вызов статического метода, принимающего три аргумента.

Call(MethodInfo, Expression, Expression, Expression, Expression)

Создает выражение MethodCallExpression, представляющее вызов статического метода, принимающего четыре аргумента.

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Создает выражение MethodCallExpression, представляющее вызов статического метода, принимающего пять аргументов.

Call(MethodInfo, Expression[])

Создает выражение MethodCallExpression, представляющее вызов метода static (Shared в Visual Basic), принимающего аргументы.

Call(MethodInfo, IEnumerable<Expression>)

Создает выражение MethodCallExpression, представляющее вызов статического метода (Shared в Visual Basic).

Call(Type, String, Type[], Expression[])

Создает MethodCallExpression, представляющий вызов метода static (Shared в Visual Basic), вызывая соответствующий метод фабрики.

Catch(ParameterExpression, Expression)

Создает объект CatchBlock, представляющий оператор catch со ссылкой на перехваченный объект Exception, который используется в теле обработчика.

Catch(ParameterExpression, Expression, Expression)

Создает объект CatchBlock, представляющий оператор catch с фильтром Exception и ссылкой на перехваченный объект Exception.

Catch(Type, Expression)

Создает объект CatchBlock, представляющий оператор catch.

Catch(Type, Expression, Expression)

Создает объект CatchBlock, представляющий оператор catch с фильтром Exception без ссылки на перехваченный объект Exception.

ClearDebugInfo(SymbolDocumentInfo)

Создает выражение DebugInfoExpression для очистки точки последовательности.

Coalesce(Expression, Expression)

Создает BinaryExpression, представляющий объединяющую операцию.

Coalesce(Expression, Expression, LambdaExpression)

Создает BinaryExpression, представляющий объединяющую операцию, заданную функции преобразования.

Condition(Expression, Expression, Expression)

Создает объект ConditionalExpression, представляющий условный оператор.

Condition(Expression, Expression, Expression, Type)

Создает объект ConditionalExpression, представляющий условный оператор.

Constant(Object)

Создает ConstantExpression, для свойства Value которого задано указанное значение.

Constant(Object, Type)

Создает ConstantExpression, содержащее свойства Value и Type, для которых заданы указанные значения.

Continue(LabelTarget)

Создает объект GotoExpression, представляющий оператор continue.

Continue(LabelTarget, Type)

Создает объект GotoExpression, представляющий оператор continue с указанным типом.

Convert(Expression, Type)

Создает выражение UnaryExpression, представляющее операцию преобразования типа.

Convert(Expression, Type, MethodInfo)

Создает UnaryExpression, представляющее операцию преобразования, для которой указан метод реализации.

ConvertChecked(Expression, Type)

Создает UnaryExpression, представляющее операцию преобразования, создающую исключение, если целевой тип переполнен.

ConvertChecked(Expression, Type, MethodInfo)

Создает UnaryExpression, представляющее операцию преобразования, создающую исключение, если целевой тип переполнен, и для которой указан метод реализации.

DebugInfo(SymbolDocumentInfo, Int32, Int32, Int32, Int32)

Создает выражение DebugInfoExpression с заданным диапазоном.

Decrement(Expression)

Создает объект UnaryExpression, представляющий уменьшение выражения на 1.

Decrement(Expression, MethodInfo)

Создает объект UnaryExpression, представляющий уменьшение выражения на 1.

Default(Type)

Создает DefaultExpression, для свойства Type которого задан указанный тип.

Divide(Expression, Expression)

Создает BinaryExpression, представляющий операцию арифметического деления.

Divide(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий операцию арифметического деления. Может быть указан метод реализации.

DivideAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания деления, не содержащую проверку переполнения.

DivideAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания деления, не содержащую проверку переполнения.

DivideAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания деления, не содержащую проверку переполнения.

Dynamic(CallSiteBinder, Type, Expression)

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

Dynamic(CallSiteBinder, Type, Expression, Expression)

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression)

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression, Expression)

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

Dynamic(CallSiteBinder, Type, Expression[])

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

Dynamic(CallSiteBinder, Type, IEnumerable<Expression>)

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

ElementInit(MethodInfo, Expression[])

Создает ElementInit, присвоенный массиву значений в качестве второго аргумента.

ElementInit(MethodInfo, IEnumerable<Expression>)

Создает объект ElementInit, присвоенный IEnumerable<T> в качестве второго аргумента.

Empty()

Создает пустое выражение типа Void.

Equal(Expression, Expression)

Создает BinaryExpression, представляющий сравнение равенства.

Equal(Expression, Expression, Boolean, MethodInfo)

Создает BinaryExpression, представляющий сравнение равенства. Может быть указан метод реализации.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
ExclusiveOr(Expression, Expression)

Создает выражение BinaryExpression, представляющее битовую операцию XOR с использованием op_ExclusiveOr для пользовательских типов.

ExclusiveOr(Expression, Expression, MethodInfo)

Создает выражение BinaryExpression, представляющее битовую операцию XOR с использованием op_ExclusiveOr для пользовательских типов. Может быть указан метод реализации.

ExclusiveOrAssign(Expression, Expression)

Создает объект , BinaryExpression представляющий побитовую операцию присваивания XOR, используя op_ExclusiveOr для определяемых пользователем типов.

ExclusiveOrAssign(Expression, Expression, MethodInfo)

Создает объект , BinaryExpression представляющий побитовую операцию присваивания XOR, используя op_ExclusiveOr для определяемых пользователем типов.

ExclusiveOrAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект , BinaryExpression представляющий побитовую операцию присваивания XOR, используя op_ExclusiveOr для определяемых пользователем типов.

Field(Expression, FieldInfo)

Создает объект MemberExpression, представляющий доступ к полю.

Field(Expression, String)

Создает MemberExpression, который представляет доступ к полю, которому предоставлено имя поля.

Field(Expression, Type, String)

Создает объект MemberExpression, представляющий доступ к полю.

GetActionType(Type[])

Создает Type объект , представляющий универсальный Action тип делегата с определенными аргументами типа.

GetDelegateType(Type[])

Type Возвращает объект , представляющий универсальный Func<TResult> тип или Action тип делегата с определенными аргументами типа.

GetFuncType(Type[])

Создает Type объект , представляющий универсальный Func<TResult> тип делегата с определенными аргументами типа. Аргумент последнего типа задает тип возвращаемого значения созданного делегата.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Goto(LabelTarget)

Создает объект GotoExpression, представляющий оператор goto.

Goto(LabelTarget, Expression)

Создает объект GotoExpression, представляющий оператор goto. Можно указать значение, передаваемое метке при переходе.

Goto(LabelTarget, Expression, Type)

Создает выражение GotoExpression, представляющее оператор goto с указанным типом. Можно указать значение, передаваемое метке при переходе.

Goto(LabelTarget, Type)

Создает выражение GotoExpression, представляющее оператор goto с указанным типом.

GreaterThan(Expression, Expression)

Создает BinaryExpression, представляющее числовое сравнение объектов "больше, чем".

GreaterThan(Expression, Expression, Boolean, MethodInfo)

Создает BinaryExpression, представляющее числовое сравнение объектов "больше, чем". Может быть указан метод реализации.

GreaterThanOrEqual(Expression, Expression)

Создает BinaryExpression, представляющий числовое сравнение объектов "больше или равно".

GreaterThanOrEqual(Expression, Expression, Boolean, MethodInfo)

Создает BinaryExpression, представляющий числовое сравнение объектов "больше или равно".

IfThen(Expression, Expression)

Создает объект ConditionalExpression, представляющий условный блок с оператором if.

IfThenElse(Expression, Expression, Expression)

Создает объект ConditionalExpression, представляющий условный блок с операторами if и else.

Increment(Expression)

Создает объект UnaryExpression, представляющий увеличение значения выражения на 1.

Increment(Expression, MethodInfo)

Создает объект UnaryExpression, представляющий приращение выражения на 1.

Invoke(Expression, Expression[])

Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента.

Invoke(Expression, IEnumerable<Expression>)

Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента.

IsFalse(Expression)

Возвращает значение, показывающее, имеет ли выражение значение false.

IsFalse(Expression, MethodInfo)

Возвращает значение, показывающее, имеет ли выражение значение false.

IsTrue(Expression)

Возвращает значение, показывающее, имеет ли выражение значение true.

IsTrue(Expression, MethodInfo)

Возвращает значение, показывающее, имеет ли выражение значение true.

Label()

Создает объект LabelTarget, представляющий метку с типом void, не имеющую имени.

Label(LabelTarget)

Создает объект LabelExpression, представляющий метку без значения по умолчанию.

Label(LabelTarget, Expression)

Создает выражение LabelExpression, представляющее метку с заданным значением по умолчанию.

Label(String)

Создает объектLabelTarget, представляющий метку с типом void и заданным именем.

Label(Type)

Создает объект LabelTarget, представляющий метку с заданным типом.

Label(Type, String)

Создает объект LabelTarget, представляющий метку с заданными типом и именем.

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

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

Lambda(Expression, Boolean, ParameterExpression[])

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

Lambda(Expression, IEnumerable<ParameterExpression>)

Создает LambdaExpression, создавая сначала тип делегата из тела выражения и перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции.

Lambda(Expression, ParameterExpression[])

Создает LambdaExpression, создавая сначала тип делегата из тела выражения и массив выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции.

Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)

Создает LambdaExpression, создавая сначала тип делегата из тела выражения, имя для лямбда-функции, параметр, указывающий, следует ли использовать оптимизацию вызовов с префиксом tail, а также перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции.

Lambda(Expression, String, IEnumerable<ParameterExpression>)

Создает LambdaExpression, создавая сначала тип делегата из тела выражения, имя для лямбда-функции и перечисляемую коллекцию выражений параметров. Он может использоваться, если тип делегата неизвестен в момент компиляции.

Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)

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

Lambda(Type, Expression, Boolean, ParameterExpression[])

Создает LambdaExpression, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail, а также массив выражений параметров.

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

Создает LambdaExpression, в котором тип делегата известен во время компиляции, с перечисляемой коллекцией выражений параметров.

Lambda(Type, Expression, ParameterExpression[])

Создает LambdaExpression, в котором тип делегата известен во время компиляции, с массивом выражений параметров.

Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)

Создает LambdaExpression, в котором тип делегата известен во время компиляции, с именем для лямбда-функции, параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров.

Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)

Создает LambdaExpression, в котором тип делегата известен во время компиляции, с именем для лямбда-функции и перечисляемой коллекцией выражений параметров.

Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)

Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров.

Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])

Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и массивом выражений параметров.

Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)

Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с перечисляемой коллекцией выражений параметров.

Lambda<TDelegate>(Expression, ParameterExpression[])

Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с массивом выражений параметров.

Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)

Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с именем для лямбда-функции, параметром, указывающим, следует ли использовать оптимизацию вызовов с префиксом tail и перечисляемой коллекцией выражений параметров.

Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)

Создает Expression<TDelegate>, в котором тип делегата известен во время компиляции, с именем для лямбда-функции и перечисляемой коллекцией выражений параметров.

LeftShift(Expression, Expression)

Создает BinaryExpression, представляющий побитовую операцию со сдвигом влево.

LeftShift(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий побитовую операцию со сдвигом влево.

LeftShiftAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания сдвига влево.

LeftShiftAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий битовую операцию присваивания сдвига влево.

LeftShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания сдвига влево.

LessThan(Expression, Expression)

Создает BinaryExpression, представляющий числовое сравнение объектов "меньше, чем".

LessThan(Expression, Expression, Boolean, MethodInfo)

Создает BinaryExpression, представляющий числовое сравнение объектов "меньше, чем".

LessThanOrEqual(Expression, Expression)

Создает BinaryExpression, представляющий числовое сравнение объектов "меньше или равно".

LessThanOrEqual(Expression, Expression, Boolean, MethodInfo)

Создает BinaryExpression, представляющий числовое сравнение объектов "меньше или равно".

ListBind(MemberInfo, ElementInit[])

Создает MemberListBinding, где элемент является полем или свойством.

ListBind(MemberInfo, IEnumerable<ElementInit>)

Создает MemberListBinding, где элемент является полем или свойством.

ListBind(MethodInfo, ElementInit[])

Создает объект MemberListBinding на основе указанного метода доступа к свойству.

ListBind(MethodInfo, IEnumerable<ElementInit>)

Создает объект MemberListBinding на основе указанного метода доступа к свойству.

ListInit(NewExpression, ElementInit[])

Создает ListInitExpression, использующий указанные объекты ElementInit для инициализации коллекции.

ListInit(NewExpression, Expression[])

Создает ListInitExpression, использующий метод с именем "Добавить" для добавления элементов в коллекцию.

ListInit(NewExpression, IEnumerable<ElementInit>)

Создает ListInitExpression, использующий указанные объекты ElementInit для инициализации коллекции.

ListInit(NewExpression, IEnumerable<Expression>)

Создает ListInitExpression, использующий метод с именем "Добавить" для добавления элементов в коллекцию.

ListInit(NewExpression, MethodInfo, Expression[])

Создает ListInitExpression, использующий указанный метод, чтобы добавить элементы к коллекции.

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Создает ListInitExpression, использующий указанный метод, чтобы добавить элементы к коллекции.

Loop(Expression)

Создает объект LoopExpression с заданным телом.

Loop(Expression, LabelTarget)

Создает объект LoopExpression с заданным телом и целью оператора break.

Loop(Expression, LabelTarget, LabelTarget)

Создает объект LoopExpression с заданным телом.

MakeBinary(ExpressionType, Expression, Expression)

Создает BinaryExpression, присвоенные левый и правый операнды с помощью вызова соответствующего метода фабрики.

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo)

Создает BinaryExpression, присвоенный левый операнд, правый операнд и метод реализации с помощью вызова соответствующего метода фабрики.

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo, LambdaExpression)

Создает BinaryExpression, присвоенный левый операнд, правый операнд, метод реализации и функция преобразования метода с помощью вызова соответствующего метода фабрики.

MakeCatchBlock(Type, ParameterExpression, Expression, Expression)

Создает объект CatchBlock, представляющий оператор catch с указанными элементами.

MakeDynamic(Type, CallSiteBinder, Expression)

Создает объект DynamicExpression, представляющий динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder и одним аргументом.

MakeDynamic(Type, CallSiteBinder, Expression, Expression)

Создает объект DynamicExpression, представляющий динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder и двумя аргументами.

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression)

Создает объект DynamicExpression, представляющий динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder и тремя аргументами.

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression, Expression)

Создает объект DynamicExpression, представляющий динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder и четырьмя аргументами.

MakeDynamic(Type, CallSiteBinder, Expression[])

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

MakeDynamic(Type, CallSiteBinder, IEnumerable<Expression>)

Создает выражение DynamicExpression, которое представляет динамическую операцию, привязанную с использованием указанного объекта CallSiteBinder.

MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type)

Создает выражение GotoExpression, представляющее переход указанного типа GotoExpressionKind. Также можно указать значение, передаваемое метке при переходе.

MakeIndex(Expression, PropertyInfo, IEnumerable<Expression>)

Создает объект IndexExpression, представляющий доступ к индексированному свойству объекта.

MakeMemberAccess(Expression, MemberInfo)

Создает MemberExpression, который представляет доступ к полю или свойству.

MakeTry(Type, Expression, Expression, Expression, IEnumerable<CatchBlock>)

Создает выражение TryExpression, представляющее блок try с указанными элементами.

MakeUnary(ExpressionType, Expression, Type)

Создает UnaryExpression, присвоенный операнду с помощью вызова соответствующего метода фабрики.

MakeUnary(ExpressionType, Expression, Type, MethodInfo)

Создает UnaryExpression, присвоенный операнд и метод реализации с помощью вызова соответствующего метода фабрики.

MemberBind(MemberInfo, IEnumerable<MemberBinding>)

Создает MemberMemberBinding, который представляет рекурсивную инициализацию элементов поля или свойства.

MemberBind(MemberInfo, MemberBinding[])

Создает MemberMemberBinding, который представляет рекурсивную инициализацию элементов поля или свойства.

MemberBind(MethodInfo, IEnumerable<MemberBinding>)

Создает MemberMemberBinding, который представляет рекурсивную инициализацию элементов элемента, доступ к которому осуществляется с помощью метода доступа свойства.

MemberBind(MethodInfo, MemberBinding[])

Создает MemberMemberBinding, который представляет рекурсивную инициализацию элементов элемента, доступ к которому осуществляется с помощью метода доступа свойства.

MemberInit(NewExpression, IEnumerable<MemberBinding>)

Представляет выражение, создающее новый объект и инициализирующее свойство объекта.

MemberInit(NewExpression, MemberBinding[])

Создает объект MemberInitExpression.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Modulo(Expression, Expression)

Создает BinaryExpression, представляющий операцию арифметического остатка.

Modulo(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий операцию арифметического остатка.

ModuloAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания остатка.

ModuloAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания остатка.

ModuloAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания остатка.

Multiply(Expression, Expression)

Создает BinaryExpression, представляющий операцию арифметического умножения, не содержащую проверку переполнения.

Multiply(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий операцию арифметического умножения, не содержащую проверку переполнения.

MultiplyAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания умножения, не содержащую проверку переполнения.

MultiplyAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания умножения, не содержащую проверку переполнения.

MultiplyAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания умножения, не содержащую проверку переполнения.

MultiplyAssignChecked(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания умножения, содержащую проверку переполнения.

MultiplyAssignChecked(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания умножения, содержащую проверку переполнения.

MultiplyAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания умножения, содержащую проверку переполнения.

MultiplyChecked(Expression, Expression)

Создает BinaryExpression, представляющий операцию арифметического умножения, содержащую проверку переполнения.

MultiplyChecked(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий операцию арифметического умножения, содержащую проверку переполнения.

Negate(Expression)

Создает UnaryExpression, представляющий операцию арифметического отрицания.

Negate(Expression, MethodInfo)

Создает UnaryExpression, представляющий операцию арифметического отрицания.

NegateChecked(Expression)

Создает UnaryExpression, представляющий операцию арифметического отрицания, содержащую проверку переполнения.

NegateChecked(Expression, MethodInfo)

Создает UnaryExpression, представляющий операцию арифметического отрицания, содержащую проверку переполнения. Может быть указан метод реализации.

New(ConstructorInfo)

Создает NewExpression, представляющий вызов указанного конструктора без аргументов.

New(ConstructorInfo, Expression[])

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.

New(ConstructorInfo, IEnumerable<Expression>)

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.

New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами. Указаны элементы с доступом к полям, инициализированным конструктором.

New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами. Указаны элементы с доступом к полям, инициализированным в качестве массива.

New(Type)

Создает NewExpression, представляющий вызов конструктора указанного типа без параметров.

NewArrayBounds(Type, Expression[])

Создает NewArrayExpression, представляющее создание массива с указанным рангом.

NewArrayBounds(Type, IEnumerable<Expression>)

Создает NewArrayExpression, представляющее создание массива с указанным рангом.

NewArrayInit(Type, Expression[])

Создает NewArrayExpression, представляющий создание одномерного массива и его инициализацию из списка элементов.

NewArrayInit(Type, IEnumerable<Expression>)

Создает NewArrayExpression, представляющий создание одномерного массива и его инициализацию из списка элементов.

Not(Expression)

Создает UnaryExpression, представляющий побитовую операцию дополнения.

Not(Expression, MethodInfo)

Создает UnaryExpression, представляющий побитовую операцию дополнения. Может быть указан метод реализации.

NotEqual(Expression, Expression)

Создает BinaryExpression, представляющий сравнение неравенства.

NotEqual(Expression, Expression, Boolean, MethodInfo)

Создает BinaryExpression, представляющий сравнение неравенства.

OnesComplement(Expression)

Возвращает выражение, представляющее поразрядное дополнение до единицы.

OnesComplement(Expression, MethodInfo)

Возвращает выражение, представляющее поразрядное дополнение до единицы.

Or(Expression, Expression)

Создает выражение BinaryExpression, представляющее битовую операцию OR.

Or(Expression, Expression, MethodInfo)

Создает выражение BinaryExpression, представляющее битовую операцию OR.

OrAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания OR.

OrAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий битовую операцию присваивания OR.

OrAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания OR.

OrElse(Expression, Expression)

Создает выражение BinaryExpression, представляющее условную операцию OR, вычисляющую второй операнд, только если первый операнд имеет значение false.

OrElse(Expression, Expression, MethodInfo)

Создает выражение BinaryExpression, представляющее условную операцию OR, вычисляющую второй операнд, только если первый операнд имеет значение false.

Parameter(Type)

Создает узел ParameterExpression, который можно использовать для идентификации параметра или переменной в дереве выражения.

Parameter(Type, String)

Создает узел ParameterExpression, который можно использовать для идентификации параметра или переменной в дереве выражения.

PostDecrementAssign(Expression)

Создает объект UnaryExpression, представляющий присваивание выражения и последующее уменьшение исходного выражения на 1.

PostDecrementAssign(Expression, MethodInfo)

Создает объект UnaryExpression, представляющий присваивание выражения и последующее уменьшение исходного выражения на 1.

PostIncrementAssign(Expression)

Создает объект UnaryExpression, представляющий присваивание выражения и последующее увеличение исходного выражения на 1.

PostIncrementAssign(Expression, MethodInfo)

Создает объект UnaryExpression, представляющий присваивание выражения и последующее увеличение исходного выражения на 1.

Power(Expression, Expression)

Создает объект BinaryExpression, представляющий возведение числа в степень.

Power(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий возведение числа в степень.

PowerAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий возведение выражения в степень и присваивание результата исходному выражению.

PowerAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий возведение выражения в степень и присваивание результата исходному выражению.

PowerAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий возведение выражения в степень и присваивание результата исходному выражению.

PreDecrementAssign(Expression)

Создает объект UnaryExpression, который уменьшает выражение на 1 и присваивает результат исходному выражению.

PreDecrementAssign(Expression, MethodInfo)

Создает объект UnaryExpression, который уменьшает выражение на 1 и присваивает результат исходному выражению.

PreIncrementAssign(Expression)

Создает объект UnaryExpression, который увеличивает выражение на 1 и присваивает результат исходному выражению.

PreIncrementAssign(Expression, MethodInfo)

Создает объект UnaryExpression, который увеличивает выражение на 1 и присваивает результат исходному выражению.

Property(Expression, MethodInfo)

Создает MemberExpression, который представляет доступ к свойству с помощью метода доступа свойства.

Property(Expression, PropertyInfo)

Создает MemberExpression, представляющий доступ к свойству.

Property(Expression, PropertyInfo, Expression[])

Создает выражение IndexExpression, представляющее доступ к индексированному свойству.

Property(Expression, PropertyInfo, IEnumerable<Expression>)

Создает выражение IndexExpression, представляющее доступ к индексированному свойству.

Property(Expression, String)

Создает MemberExpression, представляющий доступ к свойству.

Property(Expression, String, Expression[])

Создает выражение IndexExpression, представляющее доступ к индексированному свойству.

Property(Expression, Type, String)

Создает выражение MemberExpression, представляющее доступ к свойству.

PropertyOrField(Expression, String)

Создает объект MemberExpression, представляющий доступ к свойству или полю.

Quote(Expression)

Создает объект UnaryExpression, представляющий выражение, которое содержит постоянное значение типа Expression.

Reduce()

Преобразует данный узел в более простое выражение. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.

ReduceAndCheck()

Преобразует данный узел в более простое выражение. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.

ReduceExtensions()

Упрощает выражение до известного типа узла (не являющегося узлом Extension) или возвращает выражение, если оно имеет известный тип.

ReferenceEqual(Expression, Expression)

Создает выражение BinaryExpression, представляющее проверку равенства ссылок.

ReferenceNotEqual(Expression, Expression)

Создает выражение BinaryExpression, представляющее проверку неравенства ссылок.

Rethrow()

Создает объект UnaryExpression, представляющий повторное создание исключения.

Rethrow(Type)

Создает выражение UnaryExpression, представляющее повторное создание исключения с заданным типом.

Return(LabelTarget)

Создает объект GotoExpression, представляющий оператор return.

Return(LabelTarget, Expression)

Создает объект GotoExpression, представляющий оператор return. Можно указать значение, передаваемое метке при переходе.

Return(LabelTarget, Expression, Type)

Создает объект GotoExpression, представляющий оператор return с указанным типом. Можно указать значение, передаваемое метке при переходе.

Return(LabelTarget, Type)

Создает объект GotoExpression, представляющий оператор return с указанным типом.

RightShift(Expression, Expression)

Создает BinaryExpression, представляющий побитовую операцию сдвига вправо.

RightShift(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий побитовую операцию сдвига вправо.

RightShiftAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания сдвига вправо.

RightShiftAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий битовую операцию присваивания сдвига вправо.

RightShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий битовую операцию присваивания сдвига вправо.

RuntimeVariables(IEnumerable<ParameterExpression>)

Создает экземпляр класса RuntimeVariablesExpression.

RuntimeVariables(ParameterExpression[])

Создает экземпляр класса RuntimeVariablesExpression.

Subtract(Expression, Expression)

Создает BinaryExpression, представляющий операцию арифметического вычитания, не содержащую проверку переполнения.

Subtract(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий операцию арифметического вычитания, не содержащую проверку переполнения.

SubtractAssign(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания вычитания, не содержащую проверку переполнения.

SubtractAssign(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания вычитания, не содержащую проверку переполнения.

SubtractAssign(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания вычитания, не содержащую проверку переполнения.

SubtractAssignChecked(Expression, Expression)

Создает объект BinaryExpression, представляющий операцию присваивания вычитания, содержащую проверку переполнения.

SubtractAssignChecked(Expression, Expression, MethodInfo)

Создает объект BinaryExpression, представляющий операцию присваивания вычитания, содержащую проверку переполнения.

SubtractAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

Создает объект BinaryExpression, представляющий операцию присваивания вычитания, содержащую проверку переполнения.

SubtractChecked(Expression, Expression)

Создает BinaryExpression, представляющий операцию арифметического вычитания, содержащую проверку переполнения.

SubtractChecked(Expression, Expression, MethodInfo)

Создает BinaryExpression, представляющий операцию арифметического вычитания, содержащую проверку переполнения.

Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

Создает объект SwitchExpression, представляющий оператор switch с вариантом по умолчанию.

Switch(Expression, Expression, MethodInfo, SwitchCase[])

Создает объект SwitchExpression, представляющий оператор switch с вариантом по умолчанию.

Switch(Expression, Expression, SwitchCase[])

Создает объект SwitchExpression, представляющий оператор switch с вариантом по умолчанию.

Switch(Expression, SwitchCase[])

Создает объект SwitchExpression, представляющий switch без варианта по умолчанию.

Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

Создает объект SwitchExpression, представляющий оператор switch с вариантом по умолчанию.

Switch(Type, Expression, Expression, MethodInfo, SwitchCase[])

Создает объект SwitchExpression, представляющий оператор switch с вариантом по умолчанию.

SwitchCase(Expression, Expression[])

Создает объект SwitchCase для использования в выражении SwitchExpression.

SwitchCase(Expression, IEnumerable<Expression>)

Создает объект SwitchCase для использования в объекте SwitchExpression.

SymbolDocument(String)

Создает экземпляр класса SymbolDocumentInfo.

SymbolDocument(String, Guid)

Создает экземпляр класса SymbolDocumentInfo.

SymbolDocument(String, Guid, Guid)

Создает экземпляр класса SymbolDocumentInfo.

SymbolDocument(String, Guid, Guid, Guid)

Создает экземпляр класса SymbolDocumentInfo.

Throw(Expression)

Создает объект UnaryExpression, представляющий создание исключения.

Throw(Expression, Type)

Создает выражение UnaryExpression, представляющее создание исключения с заданным типом.

ToString()

Возвращает текстовое представление текущего объекта Expression.

TryCatch(Expression, CatchBlock[])

Создает выражение TryExpression, представляющее блок try с произвольным числом операторов catch и без блоков fault и finally.

TryCatchFinally(Expression, Expression, CatchBlock[])

Создает объект TryExpression, представляющий блок try с произвольным числом операторов catch и блоком finally.

TryFault(Expression, Expression)

Создает объект TryExpression, представляющий блок try с блоком fault и без операторов catch.

TryFinally(Expression, Expression)

Создает объект TryExpression, представляющий блок try с блоком finally и без операторов catch.

TryGetActionType(Type[], Type)

Создает объект Type, представляющий универсальный тип делегата System.Action с заданными аргументами типа.

TryGetFuncType(Type[], Type)

Создает объект Type, представляющий универсальный тип делегата System.Func с заданными аргументами типа. Аргумент последнего типа задает тип возвращаемого значения созданного делегата.

TypeAs(Expression, Type)

Создает UnaryExpression, представляющий преобразование явной ссылки или упаковки, где null поддерживается в случае неудачного преобразования.

TypeEqual(Expression, Type)

Создает выражение TypeBinaryExpression, сравнивающее идентификацию типов времени выполнения.

TypeIs(Expression, Type)

Создает объект TypeBinaryExpression.

UnaryPlus(Expression)

Создает UnaryExpression, представляющий операцию "унарный плюс".

UnaryPlus(Expression, MethodInfo)

Создает UnaryExpression, представляющий операцию "унарный плюс".

Unbox(Expression, Type)

Создает выражение UnaryExpression, представляющее явную распаковку-преобразование.

Variable(Type)

Создает узел ParameterExpression, который можно использовать для идентификации параметра или переменной в дереве выражения.

Variable(Type, String)

Создает узел ParameterExpression, который можно использовать для идентификации параметра или переменной в дереве выражения.

VisitChildren(ExpressionVisitor)

Упрощает узел и вызывает делегат-посетитель для преобразованного выражения. Данный метод создает исключение, если узел невозможно упростить.

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