Бөлісу құралы:


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.

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