Expression.Condition メソッド

定義

条件付きステートメントを表す ConditionalExpression を作成します。

オーバーロード

Condition(Expression, Expression, Expression)

条件付きステートメントを表す ConditionalExpression を作成します。

Condition(Expression, Expression, Expression, Type)

条件付きステートメントを表す ConditionalExpression を作成します。

Condition(Expression, Expression, Expression)

ソース:
ConditionalExpression.cs
ソース:
ConditionalExpression.cs
ソース:
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 プロパティと、指定した値に設定された ConditionalTest、および IfTrue の各プロパティを含む IfFalse

例外

testifTrue、または ifFalse は、null です。

test.Type が Boolean ではありません。

- または -

ifTrue.Type が、ifFalse.Type と等しくありません。

次のコード例は、条件ステートメントを表す式を作成する方法を示しています。 最初の引数が に true評価された場合、2 番目の引数が実行されます。それ以外の場合は、3 番目の引数が実行されます。

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

ソース:
ConditionalExpression.cs
ソース:
ConditionalExpression.cs
ソース:
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 プロパティと、指定した値に設定された ConditionalTest、および IfTrue の各プロパティを含む IfFalse

注釈

このメソッドを使用すると、 と ifFalse 式の型が等しくない場合に、条件式のifTrue結果型を明示的に統合できます。 と ifFalse の両方ifTrueの型は、結果の型に暗黙的に参照割り当て可能である必要があります。 を type にできます Void

適用対象