Expression.Condition Método

Definição

Cria um ConditionalExpression que representa uma afirmação condicional.

Sobrecargas

Name Description
Condition(Expression, Expression, Expression)

Cria um ConditionalExpression que representa uma afirmação condicional.

Condition(Expression, Expression, Expression, Type)

Cria um ConditionalExpression que representa uma afirmação condicional.

Condition(Expression, Expression, Expression)

Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs

Cria um ConditionalExpression que representa uma afirmação condicional.

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

Parâmetros

test
Expression

E Expression para definir a Test propriedade igual a .

ifTrue
Expression

E Expression para definir a IfTrue propriedade igual a .

ifFalse
Expression

E Expression para definir a IfFalse propriedade igual a .

Devoluções

A ConditionalExpression que tem a NodeType propriedade igual a Conditional e o Test, IfTrue, e IfFalse propriedades definidas com os valores especificados.

Exceções

test ou ifTrue ou ifFalse é null.

test. O tipo não Booleané .

-ou-

ifTrue. O tipo não é igual a ifFalse. Tipo.

Exemplos

O exemplo de código seguinte mostra como criar uma expressão que representa uma afirmação condicional. Se o primeiro argumento avalia a true, o segundo argumento é executado; caso contrário, o terceiro argumento é executado.

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

Observações

A Type propriedade do resultado ConditionalExpression é igual à Type propriedade de ifTrue.

Ver também

Aplica-se a

Condition(Expression, Expression, Expression, Type)

Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs
Origem:
ConditionalExpression.cs

Cria um ConditionalExpression que representa uma afirmação condicional.

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

Parâmetros

test
Expression

E Expression para definir a Test propriedade igual a .

ifTrue
Expression

E Expression para definir a IfTrue propriedade igual a .

ifFalse
Expression

E Expression para definir a IfFalse propriedade igual a .

type
Type

A Type para definir a Type propriedade igual a .

Devoluções

A ConditionalExpression que tem a NodeType propriedade igual a Conditional e o Test, IfTrue, e IfFalse propriedades definidas com os valores especificados.

Observações

Este método permite unificar explicitamente o tipo de resultado da expressão condicional nos casos em que os tipos de ifTrue e ifFalse expressões não são iguais. Os tipos de ambos ifTrue e ifFalse devem ser implicitamente atribuíveis de referência ao tipo de resultado. É type permitido Voidser .

Aplica-se a