Represents an expression that has a conditional operator.
Assemblies: System.Core (in System.Core.dll)
System.Linq.Expressions (in System.Linq.Expressions.dll)
Thetype exposes the following members.
|CanReduce||Indicates that the node can be reduced to a simpler node. If this returns true, Reduce() can be called to produce the reduced form. (Inherited from Expression.)|
|IfFalse||Gets the expression to execute if the test evaluates to false.|
|IfTrue||Gets the expression to execute if the test evaluates to true.|
|NodeType||Returns the node type of this expression. Extension nodes should return Extension when overriding this method. (Overrides Expression.NodeType.)|
|Test||Gets the test of the conditional operation.|
|Type||Gets the static type of the expression that this Expression represents. (Overrides Expression.Type.)|
|Accept||Dispatches to the specific visit method for this node type. For example, MethodCallExpression calls the VisitMethodCall. (Overrides Expression.Accept(ExpressionVisitor).)|
|Equals(Object)||Determines whether the specified object is equal to the current object. (Inherited from Object.)|
|Finalize||Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)|
|GetHashCode||Serves as the default hash function. (Inherited from Object.)|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|MemberwiseClone||Creates a shallow copy of the current Object. (Inherited from Object.)|
|Reduce||Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced. (Inherited from Expression.)|
|ReduceAndCheck||Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced. (Inherited from Expression.)|
|ReduceExtensions||Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type. (Inherited from Expression.)|
|ToString||Returns a textual representation of the Expression. (Inherited from Expression.)|
|Update||Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression|
|VisitChildren||Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible. (Inherited from Expression.)|
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: // 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