Expression.Equal Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает объект BinaryExpression , представляющий сравнение равенства.
Перегрузки
| Имя | Описание |
|---|---|
| Equal(Expression, Expression) |
Создает объект BinaryExpression , представляющий сравнение равенства. |
| Equal(Expression, Expression, Boolean, MethodInfo) |
Создает объект BinaryExpression , представляющий сравнение равенства. Можно указать метод реализации. |
Equal(Expression, Expression)
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
Создает объект BinaryExpression , представляющий сравнение равенства.
public:
static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Equal(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression) As BinaryExpression
Параметры
- left
- Expression
Значение Expression , равное свойству Left .
- right
- Expression
Значение Expression , равное свойству Right .
Возвращаемое значение
Значение BinaryExpression , равное свойству NodeTypeEqual и LeftRight свойствам, заданным указанным значениям.
Исключения
left или right есть null.
Оператор равенства не определен для left. Тип и right. Тип.
Примеры
В следующем примере кода показано, как создать выражение, которое проверяет, равны ли значения двух аргументов.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression compares the values of its two arguments.
// Both arguments need to be of the same type.
Expression equalExpr = Expression.Equal(
Expression.Constant(42),
Expression.Constant(45)
);
// Print out the expression.
Console.WriteLine(equalExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(
Expression.Lambda<Func<bool>>(equalExpr).Compile()());
// This code example produces the following output:
//
// (42 == 45)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression compares the values of its two arguments.
' Both arguments must be of the same type.
Dim equalExpr As Expression = Expression.Equal(
Expression.Constant(42),
Expression.Constant(45)
)
' Print the expression.
Console.WriteLine(equalExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(
Expression.Lambda(Of Func(Of Boolean))(equalExpr).Compile()())
' This code example produces the following output:
'
' (42 == 45)
' False
Комментарии
Результирующий BinaryExpressionMethod объект имеет свойство, заданное для метода реализации. Свойство Type устанавливается в соответствии с типом узла. Если узел снят, IsLifted свойство имеет значение true. В противном случае значение равно false. Свойство IsLiftedToNull всегда имеет значение false. Ниже приведены сведения о методе реализации, типе узла и о том, будет ли снят узел.
Реализация метода
Следующие правила определяют метод реализации для операции:
Type Если свойство любого
leftилиrightпредставляет определяемый пользователем тип, который перегружает оператор равенства, MethodInfo то этот метод представляет собой метод реализации.В противном случае метод реализации имеет значение
null.
Тип узла и снятый и не поднимаемый
Если метод реализации не null :
Если
left. Тип иright. Тип можно присвоить соответствующим типам аргументов реализующего метода, узел не поднимается. Тип узла — это возвращаемый тип метода реализации.Если выполнены следующие два условия, узел поднимается, а тип узла :Boolean
left. Тип иright. Тип — это оба типа значений, для которых по крайней мере один имеет значение NULL, и соответствующие типы, не допускающие значения NULL, равны соответствующим типам аргументов метода реализации.Возвращаемый тип реализующего метода.Boolean
Если метод реализации имеет значение null:
Если
left.Тип иright.Тип оба не допускают значение NULL, узел не поднимается. Тип узла .BooleanЕсли тип
leftи типrightоба могут быть null, узел поднимается в более высокий уровень. Тип узла .Boolean
Применяется к
Equal(Expression, Expression, Boolean, MethodInfo)
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
Создает объект BinaryExpression , представляющий сравнение равенства. Можно указать метод реализации.
public:
static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, bool liftToNull, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Equal(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Equal(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo? method);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * bool * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression, liftToNull As Boolean, method As MethodInfo) As BinaryExpression
Параметры
- left
- Expression
Значение Expression , равное свойству Left .
- right
- Expression
Значение Expression , равное свойству Right .
- liftToNull
- Boolean
trueЗначение , для присвоения IsLiftedToNull значения IsLiftedToNullfalse.truefalse
- method
- MethodInfo
Значение, MethodInfo равное свойству Method .
Возвращаемое значение
ЗначениеBinaryExpression, равное свойству EqualMethodNodeType и LeftRightIsLiftedToNullсвойству, заданному указанным значениям.
Исключения
left или right есть null.
method не null является и метод, представляющий возвращаемую, voidне static является (Shared в Visual Basic) или не принимает ровно два аргумента.
method is null и оператор равенства не определен для left. Тип и right. Тип.
Комментарии
Результирующий BinaryExpressionMethod объект имеет свойство, заданное для метода реализации. Свойство Type устанавливается в соответствии с типом узла. Если узел снят, IsLifted свойство равно true и IsLiftedToNull свойству liftToNull. В противном случае они оба false. Ниже приведены сведения о методе реализации, типе узла и о том, будет ли снят узел.
Реализация метода
Следующие правила определяют метод реализации для операции:
Если
methodэто неnullтак,staticи он представляет непустый метод (Sharedв Visual Basic), который принимает два аргумента, это метод реализации.В противном случае, если Type свойство либо
leftrightпредставляет определяемый пользователем тип, который перегружает оператор равенства, MethodInfo то этот метод представляет собой метод реализации.В противном случае метод реализации имеет значение
null.
Тип узла и снятый и не поднимаемый
Если метод реализации не null :
Если
left. Тип иright. Тип можно присвоить соответствующим типам аргументов реализующего метода, узел не поднимается. Тип узла — это возвращаемый тип метода реализации.Если выполнены следующие два условия, узел поднимается; Кроме того, тип узла имеет значение Boolean NULL, если
liftToNullимеет значение или BooleanliftToNullимеетtruefalseзначение :left. Тип иright. Тип — это оба типа значений, для которых по крайней мере один имеет значение NULL, и соответствующие типы, не допускающие значения NULL, равны соответствующим типам аргументов метода реализации.Возвращаемый тип реализующего метода.Boolean
Если метод реализации имеет значение null:
Если
left.Тип иright.Тип оба не допускают значение NULL, узел не поднимается. Тип узла .BooleanЕсли тип
leftи типrightоба могут быть null, узел поднимается в более высокий уровень. Тип узла имеет значение Boolean NULL, еслиliftToNullимеет значениеtrueили BooleanliftToNullимеет значениеfalse.