Expression.Condition Метод

Определение

Создает объект ConditionalExpression, представляющий условный оператор.Creates a ConditionalExpression that represents a conditional statement.

Перегрузки

Condition(Expression, Expression, Expression)

Создает объект ConditionalExpression, представляющий условный оператор.Creates a ConditionalExpression that represents a conditional statement.

Condition(Expression, Expression, Expression, Type)

Создает объект ConditionalExpression, представляющий условный оператор.Creates a ConditionalExpression that represents a conditional statement.

Condition(Expression, Expression, Expression)

Создает объект ConditionalExpression, представляющий условный оператор.Creates a ConditionalExpression that represents a conditional statement.

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.An Expression to set the Test property equal to.

ifTrue
Expression

Объект Expression, который следует задать в качестве значения свойства IfTrue.An Expression to set the IfTrue property equal to.

ifFalse
Expression

Объект Expression, который следует задать в качестве значения свойства IfFalse.An Expression to set the IfFalse property equal to.

Возвраты

Выражение ConditionalExpression со свойством NodeType, равным Conditional, и свойствами Test, IfTrue и IfFalse, для которых заданы указанные значения.A ConditionalExpression that has the NodeType property equal to Conditional and the Test, IfTrue, and IfFalse properties set to the specified values.

Исключения

Параметр test, ifTrue или ifFalse имеет значение null.test or ifTrue or ifFalse is null.

Тип test.Type не является типом Boolean.test.Type is not Boolean.

- или --or- Тип ifTrue.Type не равен типу ifFalse.Type.ifTrue.Type is not equal to ifFalse.Type.

Примеры

В следующем примере кода показано, как создать выражение, представляющее условный оператор.The following code example shows how to create an expression that represents a conditional statement. Если первый аргумент имеет значение true, то выполняется второй аргумент; в противном случае выполняется третий аргумент.If the first argument evaluates to true, the second argument is executed; otherwise, the third argument is executed.

// 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

Комментарии

Свойство результирующего ConditionalExpression объекта равно Type свойству объекта ifTrue. TypeThe Type property of the resulting ConditionalExpression is equal to the Type property of ifTrue.

Дополнительно

Condition(Expression, Expression, Expression, Type)

Создает объект ConditionalExpression, представляющий условный оператор.Creates a ConditionalExpression that represents a conditional statement.

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

Параметры

test
Expression

Объект Expression, который следует задать в качестве значения свойства Test.An Expression to set the Test property equal to.

ifTrue
Expression

Объект Expression, который следует задать в качестве значения свойства IfTrue.An Expression to set the IfTrue property equal to.

ifFalse
Expression

Объект Expression, который следует задать в качестве значения свойства IfFalse.An Expression to set the IfFalse property equal to.

type
Type

Объект Type, который следует задать в качестве значения свойства Type.A Type to set the Type property equal to.

Возвраты

Выражение ConditionalExpression со свойством NodeType, равным Conditional, и свойствами Test, IfTrue и IfFalse, для которых заданы указанные значения.A ConditionalExpression that has the NodeType property equal to Conditional and the Test, IfTrue, and IfFalse properties set to the specified values.

Комментарии

Этот метод позволяет явно объединить тип результата условного выражения в случаях, когда типы ifTrue выражений и ifFalse не равны.This method allows explicitly unifying the result type of the conditional expression in cases where the types of ifTrue and ifFalse expressions are not equal. Типы обоих ifTrue типов и ifFalse должны быть неявно назначены для типа результата.Types of both ifTrue and ifFalse must be implicitly reference assignable to the result type. type Может иметьVoidзначение.The type is allowed to be Void.

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