Expression.Condition Method (Expression, Expression, Expression)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates a ConditionalExpression that represents a conditional statement.
Assembly: System.Core (in System.Core.dll)
'Declaration Public Shared Function Condition ( _ test As Expression, _ ifTrue As Expression, _ ifFalse As Expression _ ) As ConditionalExpression
Parameters
- test
- Type: System.Linq.Expressions.Expression
An Expression to set the Test property equal to.
- ifTrue
- Type: System.Linq.Expressions.Expression
An Expression to set the IfTrue property equal to.
- ifFalse
- Type: System.Linq.Expressions.Expression
An Expression to set the IfFalse property equal to.
Return Value
Type: System.Linq.Expressions.ConditionalExpressionA ConditionalExpression that has the NodeType property equal to Conditional and the Test, IfTrue, and IfFalse properties set to the specified values.
| Exception | Condition |
|---|---|
| ArgumentNullException | test or ifTrue or ifFalse is Nothing. |
| ArgumentException | test.Type is not Boolean. -or- ifTrue.Type is not equal to ifFalse.Type. |
The Type property of the resulting ConditionalExpression is equal to the Type property of ifTrue.
The following code example shows how to create an expression that represents a conditional statement. 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: ' 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. outputBlock.Text &= conditionExpr.ToString() & vbCrLf ' The following statement first creates an expression tree, ' then compiles it, and then executes it. outputBlock.Text &= Expression.Lambda(Of Func(Of String))(conditionExpr).Compile()() & vbCrLf ' This code example produces the following output: ' ' IIF("True", "num is greater than 10", "num is smaller than 10") ' num is greater than 10