Expression.OrElse 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
첫 번째 연산자가 BinaryExpression로 계산되는 경우에만 두 번째 피연산자를 계산하는 조건부 OR
연산을 나타내는 false
을 만듭니다.
오버로드
OrElse(Expression, Expression) |
첫 번째 피연산자가 BinaryExpression로 계산되는 경우에만 두 번째 피연산자를 계산하는 조건부 |
OrElse(Expression, Expression, MethodInfo) |
첫 번째 피연산자가 BinaryExpression로 계산되는 경우에만 두 번째 피연산자를 계산하는 조건부 |
OrElse(Expression, Expression)
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
첫 번째 피연산자가 BinaryExpression로 계산되는 경우에만 두 번째 피연산자를 계산하는 조건부 OR
연산을 나타내는 false
을 만듭니다.
public:
static System::Linq::Expressions::BinaryExpression ^ OrElse(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression OrElse (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member OrElse : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function OrElse (left As Expression, right As Expression) As BinaryExpression
매개 변수
- left
- Expression
Expression 속성에 설정할 Left입니다.
- right
- Expression
Expression 속성에 설정할 Right입니다.
반환
BinaryExpression 속성이 NodeType이고 OrElse 및 Left 속성이 지정된 값으로 설정된 Right입니다.
예외
left
또는 right
가 null
인 경우
left
.Type 및 right
.Type에 비트 OR
연산자가 정의되지 않은 경우
또는
left
.Type과 right
.Type이 동일한 부울 형식이 아닌 경우
예제
다음 코드 예제에서는 첫 번째 피연산자가 로 계산되는 경우에만 두 번째 피연산자를 평가하는 논리 OR
연산을 나타내는 식을 만드는 방법을 보여 줍니다.false
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression perfroms a logical OR operation
// on its two arguments, but if the first argument is true,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression orElseExpr = Expression.OrElse(
Expression.Constant(false),
Expression.Constant(true)
);
// Print out the expression.
Console.WriteLine(orElseExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<bool>>(orElseExpr).Compile().Invoke());
// This code example produces the following output:
//
// (False OrElse True)
// True
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression perfroms a logical OR operation
' on its two arguments, but if the first argument is true,
' the second arument is not evaluated.
' Both arguments must be of the Boolean type.
Dim orElseExpr As Expression = Expression.OrElse(
Expression.Constant(False),
Expression.Constant(True)
)
' Print the expression.
Console.WriteLine(orElseExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Boolean))(orElseExpr).Compile()())
' This code example produces the following output:
'
' (False OrElse True)
' True
설명
결과 BinaryExpression 속성은 Method 구현 메서드로 설정됩니다. 속성은 Type 노드의 형식으로 설정됩니다. 노드가 해제되면 및 IsLiftedToNull 속성은 IsLifted 모두 true
입니다. 그렇지 않으면 입니다 false
. Conversion 속성은 null
입니다.
다음 정보는 구현 메서드, 노드 형식 및 노드 해제 여부를 설명합니다.
구현 방법
다음 규칙은 작업에 대한 구현 메서드를 결정합니다.
또는
right
의left
속성이 Type 비트OR
연산 MethodInfo 자를 오버로드하는 사용자 정의 형식을 나타내는 경우 해당 메서드를 나타내는 는 구현 메서드입니다.참고
조건
OR
부 연산자는 C# 또는 Visual Basic에서 오버로드할 수 없습니다. 그러나 조건OR
부 연산자는 비트OR
연산자를 사용하여 평가됩니다. 따라서 비트OR
연산자의 사용자 정의 오버로드는 이 노드 형식에 대한 구현 메서드가 될 수 있습니다.그렇지 않으면 이고, 인 경우 입니다
left
. 및 를 입력합니다right
. 형식은 부울 형식이고 구현 메서드는 입니다null
.
노드 유형 및 해제됨 및 해제되지 않은 노드
구현 메서드가 이 아닌 null
경우:
인 경우
left
및 를 입력합니다right
. 형식은 구현 메서드의 해당 인수 형식에 할당할 수 있으며 노드는 해제되지 않습니다. 노드의 형식은 구현 메서드의 반환 형식입니다.다음 두 조건이 충족되면 노드가 해제되고 노드의 형식은 구현 메서드의 반환 형식에 해당하는 null 허용 형식입니다.
left
. 및 를 입력합니다right
. 형식은 둘 다 하나 이상의 null을 사용할 수 있는 값 형식이며, null을 허용하지 않는 해당 형식은 구현 메서드의 해당 인수 형식과 같습니다.구현 메서드의 반환 형식은 null을 허용하지 않는 값 형식입니다.
구현 메서드가 인 경우:null
left
. 및 를 입력합니다right
. 형식은 동일한 부울 형식입니다.인 경우
left
및 를 입력합니다right
. 형식은 null을 허용하지 않으며 노드가 해제되지 않습니다. 노드의 형식은 미리 정의된 조건OR
부 연산자의 결과 형식입니다.인 경우
left
및 를 입력합니다right
. 형식이 null 허용되고 노드가 해제됩니다. 노드의 형식은 미리 정의된 조건부 연산자의 결과 형식에 해당하는 nullable 형식입니다OR
.
적용 대상
OrElse(Expression, Expression, MethodInfo)
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
첫 번째 피연산자가 BinaryExpression로 계산되는 경우에만 두 번째 피연산자를 계산하는 조건부 OR
연산을 나타내는 false
을 만듭니다.
public:
static System::Linq::Expressions::BinaryExpression ^ OrElse(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression OrElse (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression OrElse (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member OrElse : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function OrElse (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression
매개 변수
- left
- Expression
Expression 속성에 설정할 Left입니다.
- right
- Expression
Expression 속성에 설정할 Right입니다.
- method
- MethodInfo
MethodInfo 속성에 설정할 Method입니다.
반환
BinaryExpression 속성이 NodeType이고 OrElse, Left 및 Right 속성이 지정된 값으로 설정된 Method입니다.
예외
left
또는 right
가 null
인 경우
method
가 null
이 아니고 이것이 나타내는 메서드가 void
를 반환하거나, static
(Visual Basic의 Shared
)이 아니거나, 정확히 두 개의 인수를 사용하지 않는 경우
method
가 null
이고 비트 OR
연산자가 left
.Type 및 right
.Type에 대해 정의되지 않은 경우
또는
method
가 null
이고 left
.Type과 right
.Type이 동일한 부울 형식이 아닌 경우
설명
결과 BinaryExpression 속성은 Method 구현 메서드로 설정됩니다. 속성은 Type 노드의 형식으로 설정됩니다. 노드가 해제되면 및 IsLiftedToNull 속성은 IsLifted 모두 true
입니다. 그렇지 않으면 입니다 false
. Conversion 속성은 null
입니다.
다음 정보는 구현 메서드, 노드 형식 및 노드 해제 여부를 설명합니다.
구현 방법
다음 규칙은 작업에 대한 구현 메서드를 결정합니다.
가 이 아니고 두 개의 인수를 사용하는 void
static
가 아닌null
(Shared
Visual Basic의 경우) 메서드를 나타내는 경우method
노드에 대한 구현 메서드입니다.그렇지 않으면 또는
right
의left
속성이 Type 비트OR
연산 MethodInfo 자를 오버로드하는 사용자 정의 형식을 나타내는 경우 해당 메서드를 나타내는 는 구현 메서드입니다.참고
조건
OR
부 연산자는 C# 또는 Visual Basic에서 오버로드할 수 없습니다. 그러나 조건OR
부 연산자는 비트OR
연산자를 사용하여 평가됩니다. 따라서 비트OR
연산자의 사용자 정의 오버로드는 이 노드 형식에 대한 구현 메서드가 될 수 있습니다.그렇지 않으면 이고, 인 경우 입니다
left
. 및 를 입력합니다right
. 형식은 부울 형식이고 구현 메서드는 입니다null
.
노드 유형 및 해제됨 및 해제되지 않은 노드
구현 메서드가 이 아닌 null
경우:
인 경우
left
및 를 입력합니다right
. 형식은 구현 메서드의 해당 인수 형식에 할당할 수 있으며 노드는 해제되지 않습니다. 노드의 형식은 구현 메서드의 반환 형식입니다.다음 두 조건이 충족되면 노드가 해제되고 노드의 형식은 구현 메서드의 반환 형식에 해당하는 null 허용 형식입니다.
left
. 및 를 입력합니다right
. 형식은 둘 다 하나 이상의 null을 사용할 수 있는 값 형식이며, null을 허용하지 않는 해당 형식은 구현 메서드의 해당 인수 형식과 같습니다.구현 메서드의 반환 형식은 null을 허용하지 않는 값 형식입니다.
구현 메서드가 인 경우:null
left
. 및 를 입력합니다right
. 형식은 동일한 부울 형식입니다.인 경우
left
및 를 입력합니다right
. 형식은 null을 허용하지 않으며 노드가 해제되지 않습니다. 노드의 형식은 미리 정의된 조건OR
부 연산자의 결과 형식입니다.인 경우
left
및 를 입력합니다right
. 형식이 null 허용되고 노드가 해제됩니다. 노드의 형식은 미리 정의된 조건부 연산자의 결과 형식에 해당하는 nullable 형식입니다OR
.
적용 대상
.NET