Expression.AndAlso Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
BinaryExpression Создает условную AND операцию, которая вычисляет второй операнд, только если первый операнд оцениваетсяtrue.
Перегрузки
| Имя | Описание |
|---|---|
| AndAlso(Expression, Expression, MethodInfo) |
BinaryExpression Создает операцию, представляющую условную |
| AndAlso(Expression, Expression) |
BinaryExpression Создает условную |
AndAlso(Expression, Expression, MethodInfo)
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
BinaryExpression Создает операцию, представляющую условную AND операцию, которая вычисляет второй операнд, только если первый операнд разрешен к true. Можно указать метод реализации.
public:
static System::Linq::Expressions::BinaryExpression ^ AndAlso(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression AndAlso(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression AndAlso(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member AndAlso : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function AndAlso (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression
Параметры
- left
- Expression
Значение, Expression равное свойству Left .
- right
- Expression
Значение, Expression равное свойству Right .
- method
- MethodInfo
Значение, MethodInfo равное свойству Method .
Возвращаемое значение
ЗначениеBinaryExpression, равное свойству NodeTypeAndAlso и LeftRightсвойству, Method заданному указанным значениям.
Исключения
left или right есть null.
method не null является и метод, представляющий возвращаемую, voidне static является (Shared в Visual Basic) или не принимает ровно два аргумента.
method значение is null , а побитовый AND оператор не определен для left. Тип и right. Тип.
–или–
method is null и left. Тип и right. Тип не совпадает с логическим типом.
Комментарии
Результирующий BinaryExpressionMethod объект имеет свойство, заданное для метода реализации. Свойство Type устанавливается в соответствии с типом узла. Если узел поднят, IsLifted и IsLiftedToNull свойства оба true. В противном случае они false. Свойство Conversion является null.
Ниже приведены сведения о методе реализации, типе узла и о том, будет ли снят узел.
Реализация метода
Метод реализации операции выбирается на основе следующих правил:
Если
methodэто неnullтак,staticи он представляет непустый метод (Sharedв Visual Basic), который принимает два аргумента, это метод реализации для узла.В противном случае, если Type свойство либо
leftrightпредставляет определяемый пользователем тип, который перегружает побитовыйANDоператор, MethodInfo то этот метод представляет собой метод реализации.Note
ANDУсловный оператор нельзя перегружать в C# или Visual Basic. Однако условныйANDоператор вычисляется с помощью побитовогоANDоператора. Таким образом, определяемая пользователем перегрузка побитовогоANDоператора может быть методом реализации этого типа узла.В противном случае , если
left. Тип иright. Тип — логические типы, реализуетсяnullметод.
Тип узла и снятый и не поднимаемый
Если метод реализации не null :
Если
left. Тип иright. Тип можно присвоить соответствующим типам аргументов реализующего метода, узел не поднимается. Тип узла — это возвращаемый тип метода реализации.Если выполнены следующие два условия, узел поднимается, а тип узла — это тип, допускающий значение NULL, соответствующий возвращаемому типу метода реализации:
left. Тип иright. Тип — это оба типа значений, для которых по крайней мере один имеет значение NULL, и соответствующие типы, не допускающие значения NULL, равны соответствующим типам аргументов реализующего метода.Возвращаемый тип метода реализации — это ненулевой тип значения.
Если метод реализации имеет значение null:
left. Тип иright. Тип совпадает с логическим типом.If
left. Тип иright. Тип не допускает значение NULL, узел не поднимается. Тип узла — это тип результата предопределенного условногоANDоператора.If
left. Тип иright. Тип имеет значение NULL, узел поднимается. Тип узла — это тип, допускающий значение NULL, соответствующий типу результата предопределенного условногоANDоператора.
Применяется к
AndAlso(Expression, Expression)
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
BinaryExpression Создает условную AND операцию, которая вычисляет второй операнд, только если первый операнд оцениваетсяtrue.
public:
static System::Linq::Expressions::BinaryExpression ^ AndAlso(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression AndAlso(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member AndAlso : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function AndAlso (left As Expression, right As Expression) As BinaryExpression
Параметры
- left
- Expression
Значение, Expression равное свойству Left .
- right
- Expression
Значение, Expression равное свойству Right .
Возвращаемое значение
Значение BinaryExpression , равное свойству NodeTypeAndAlso и LeftRight свойствам, заданным указанным значениям.
Исключения
left или right есть null.
Побитовый AND оператор не определен для left. Тип и right. Тип.
–или–
left. Тип и right. Тип не совпадает с логическим типом.
Примеры
В следующем примере кода показано, как создать выражение, выполняющее логическую операцию AND на двух операндах, только если первый операнд оценивается true.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression perfroms a logical AND operation
// on its two arguments, but if the first argument is false,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression andAlsoExpr = Expression.AndAlso(
Expression.Constant(false),
Expression.Constant(true)
);
// Print out the expression.
Console.WriteLine(andAlsoExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<bool>>(andAlsoExpr).Compile()());
// This code example produces the following output:
//
// (False AndAlso True)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression performs a logical AND operation
' on its two arguments, but if the first argument is false,
' the second argument is not evaluated.
' Both arguments must be of the Boolean type.
Dim andAlsoExpr As Expression = Expression.AndAlso(
Expression.Constant(False),
Expression.Constant(True)
)
' Print the expression.
Console.WriteLine(andAlsoExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Boolean))(andAlsoExpr).Compile()())
' This code example produces the following output:
'
' (False AndAlso True)
' False
Комментарии
Результирующий BinaryExpressionMethod объект имеет свойство, заданное для метода реализации. Свойство Type устанавливается в соответствии с типом узла. Если узел поднят, IsLifted и IsLiftedToNull свойства оба true. В противном случае они false. Свойство Conversion является null.
Ниже приведены сведения о методе реализации, типе узла и о том, будет ли снят узел.
Реализация метода
Следующие правила определяют метод реализации для операции:
Type Если свойство либо
leftrightпредставляет определяемый пользователем тип, который перегружает побитовыйANDоператор, MethodInfo то этот метод представляет собой метод реализации.Note
ANDУсловный оператор нельзя перегружать в C# или Visual Basic. Однако условныйANDоператор вычисляется с помощью побитовогоANDоператора. Таким образом, определяемая пользователем перегрузка побитовогоANDоператора может быть методом реализации этого типа узла.В противном случае , если
left. Тип иright. Тип — логические типы, реализуетсяnullметод.
Тип узла и снятый и не поднимаемый
Если метод реализации не null :
Если
left. Тип иright. Тип можно присвоить соответствующим типам аргументов реализующего метода, узел не поднимается. Тип узла — это возвращаемый тип метода реализации.Если выполнены следующие два условия, узел поднимается, а тип узла — это тип, допускающий значение NULL, соответствующий возвращаемому типу метода реализации:
left. Тип иright. Тип — это оба типа значений, для которых по крайней мере один имеет значение NULL, и соответствующие типы, не допускающие значения NULL, равны соответствующим типам аргументов реализующего метода.Возвращаемый тип метода реализации — это ненулевой тип значения.
Если метод реализации имеет значение null:
left. Тип иright. Тип совпадает с логическим типом.If
left. Тип иright. Тип не допускает значение NULL, узел не поднимается. Тип узла — это тип результата предопределенного условногоANDоператора.If
left. Тип иright. Тип имеет значение NULL, узел поднимается. Тип узла — это тип, допускающий значение NULL, соответствующий типу результата предопределенного условногоANDоператора.