Expression.Condition 메서드

정의

조건문을 나타내는 ConditionalExpression을 만듭니다.

오버로드

Condition(Expression, Expression, Expression)

조건문을 나타내는 ConditionalExpression을 만듭니다.

Condition(Expression, Expression, Expression, Type)

조건문을 나타내는 ConditionalExpression을 만듭니다.

Condition(Expression, Expression, Expression)

Source:
ConditionalExpression.cs
Source:
ConditionalExpression.cs
Source:
ConditionalExpression.cs

조건문을 나타내는 ConditionalExpression을 만듭니다.

public:
 static System::Linq::Expressions::ConditionalExpression ^ Condition(System::Linq::Expressions::Expression ^ test, System::Linq::Expressions::Expression ^ ifTrue, System::Linq::Expressions::Expression ^ ifFalse);
public static System.Linq.Expressions.ConditionalExpression Condition (System.Linq.Expressions.Expression test, System.Linq.Expressions.Expression ifTrue, System.Linq.Expressions.Expression ifFalse);
static member Condition : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.ConditionalExpression
Public Shared Function Condition (test As Expression, ifTrue As Expression, ifFalse As Expression) As ConditionalExpression

매개 변수

test
Expression

Expression 속성에 설정할 Test입니다.

ifTrue
Expression

Expression 속성에 설정할 IfTrue입니다.

ifFalse
Expression

Expression 속성에 설정할 IfFalse입니다.

반환

ConditionalExpression 속성이 NodeType이고 Conditional, TestIfTrue 속성이 지정된 값으로 설정된 IfFalse입니다.

예외

test, ifTrue 또는 ifFalsenull인 경우

test.Type이 Boolean이 아닌 경우

또는

ifTrue.Type이 ifFalse.Type과 다른 경우

예제

다음 코드 예제에서는 조건문을 나타내는 식을 만드는 방법을 보여 줍니다. 첫 번째 인수가 로 평가 true되면 두 번째 인수가 실행되고, 그렇지 않으면 세 번째 인수가 실행됩니다.

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

int num = 100;

// This expression represents a conditional operation.
// It evaluates the test (first expression) and
// executes the iftrue block (second argument) if the test evaluates to true,
// or the iffalse block (third argument) if the test evaluates to false.
Expression conditionExpr = Expression.Condition(
                           Expression.Constant(num > 10),
                           Expression.Constant("num is greater than 10"),
                           Expression.Constant("num is smaller than 10")
                         );

// Print out the expression.
Console.WriteLine(conditionExpr.ToString());

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda<Func<string>>(conditionExpr).Compile()());

// This code example produces the following output:
//
// IIF("True", "num is greater than 10", "num is smaller than 10")
// num is greater than 10
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Dim num As Integer = 100

' This expression represents a conditional operation; 
' it will evaluate the test (first expression) and
' execute the ifTrue block (second argument) if the test evaluates to true, 
' or the ifFalse block (third argument) if the test evaluates to false.
Dim conditionExpr As Expression = Expression.Condition(
                            Expression.Constant(num > 10),
                            Expression.Constant("n is greater than 10"),
                            Expression.Constant("n is smaller than 10")
                        )

' Print the expression.
Console.WriteLine(conditionExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it.       
Console.WriteLine(
    Expression.Lambda(Of Func(Of String))(conditionExpr).Compile()())

' This code example produces the following output:
'
' IIF("True", "num is greater than 10", "num is smaller than 10")
' num is greater than 10

설명

Type 결과 ConditionalExpression 의 속성은 의 ifTrue속성과 Type 같습니다.

추가 정보

적용 대상

Condition(Expression, Expression, Expression, Type)

Source:
ConditionalExpression.cs
Source:
ConditionalExpression.cs
Source:
ConditionalExpression.cs

조건문을 나타내는 ConditionalExpression을 만듭니다.

public:
 static System::Linq::Expressions::ConditionalExpression ^ Condition(System::Linq::Expressions::Expression ^ test, System::Linq::Expressions::Expression ^ ifTrue, System::Linq::Expressions::Expression ^ ifFalse, Type ^ type);
public static System.Linq.Expressions.ConditionalExpression Condition (System.Linq.Expressions.Expression test, System.Linq.Expressions.Expression ifTrue, System.Linq.Expressions.Expression ifFalse, Type type);
static member Condition : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * Type -> System.Linq.Expressions.ConditionalExpression
Public Shared Function Condition (test As Expression, ifTrue As Expression, ifFalse As Expression, type As Type) As ConditionalExpression

매개 변수

test
Expression

Expression 속성에 설정할 Test입니다.

ifTrue
Expression

Expression 속성에 설정할 IfTrue입니다.

ifFalse
Expression

Expression 속성에 설정할 IfFalse입니다.

type
Type

Type 속성에 설정할 Type입니다.

반환

ConditionalExpression 속성이 NodeType이고 Conditional, TestIfTrue 속성이 지정된 값으로 설정된 IfFalse입니다.

설명

이 메서드를 사용하면 및 ifFalse 식의 형식이 같지 않은 경우 조건식의 결과 형식 ifTrue 을 명시적으로 통합할 수 있습니다. 및 ifFalse 의 형식은 ifTrue 결과 형식에 할당할 수 있는 암시적으로 참조되어야 합니다. 은 type 으로 허용됩니다 Void.

적용 대상