ConditionalExpression Classe

Definição

Representa uma expressão que tem um operador condicional.

public ref class ConditionalExpression : System::Linq::Expressions::Expression
public ref class ConditionalExpression sealed : System::Linq::Expressions::Expression
public class ConditionalExpression : System.Linq.Expressions.Expression
public sealed class ConditionalExpression : System.Linq.Expressions.Expression
type ConditionalExpression = class
    inherit Expression
Public Class ConditionalExpression
Inherits Expression
Public NotInheritable Class ConditionalExpression
Inherits Expression
Herança
ConditionalExpression

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

Use o Condition método de fábrica para criar um ConditionalExpression.

O NodeType de um ConditionalExpression é Conditional.

Propriedades

Name Description
CanReduce

Indica que o nó pode ser reduzido a um nó mais simples. Se isto devolver verdadeiro, Reduce() pode ser chamado para produzir a forma reduzida.

(Herdado de Expression)
IfFalse

Obtém a expressão a executar se o teste avaliar para false.

IfTrue

Obtém a expressão a executar se o teste avaliar para true.

NodeType

Devolve o tipo de nó desta expressão. Os nós de extensão devem regressar Extension ao sobrepor este método.

NodeType

Obtém o tipo de nó deste Expression.

(Herdado de Expression)
Test

Recebe o teste da operação condicional.

Type

Obtém o tipo estático da expressão que isto Expression representa.

Type

Obtém o tipo estático da expressão que isto Expression representa.

(Herdado de Expression)

Métodos

Name Description
Accept(ExpressionVisitor)

Despacha para o método de visita específico para este tipo de nó. Por exemplo, MethodCallExpression chama o VisitMethodCall(MethodCallExpression).

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Reduce()

Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido.

(Herdado de Expression)
ReduceAndCheck()

Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido.

(Herdado de Expression)
ReduceExtensions()

Reduz a expressão para um tipo de nó conhecido (que não é um nó de Extensão) ou simplesmente devolve a expressão se já for um tipo conhecido.

(Herdado de Expression)
ToString()

Devolve uma representação textual do Expression.

(Herdado de Expression)
Update(Expression, Expression, Expression)

Cria uma nova expressão semelhante a esta, mas usando os filhos fornecidos. Se todas as crianças forem iguais, ela devolverá essa expressão.

VisitChildren(ExpressionVisitor)

Reduz o nó e depois chama o delegado visitante na expressão reduzida. O método lança uma exceção se o nó não for redutível.

(Herdado de Expression)

Aplica-se a