src/mobile/relinq/RelinqCore/Clauses/Expressions/ExtensionExpression.cs
/// <summary>
/// Reduces this instance to a tree of standard expressions. If this instance cannot be reduced, the same <see cref="ExtensionExpression"/>
/// is returned.
/// </summary>
/// <returns>If <see cref="CanReduce"/> is <see langword="true" />, a reduced version of this <see cref="ExtensionExpression"/>; otherwise,
/// this <see cref="ExtensionExpression"/>.</returns>
/// <remarks>
/// <para>
/// This method can be called in order to produce a new <see cref="Expression"/> that has the same semantics as this 
/// <see cref="ExtensionExpression"/> but consists of expressions of standard node types. The reduction need not be complete, nodes can be 
/// returned that themselves must be reduced.
/// </para>
/// <para>
/// Subclasses overriding the <see cref="CanReduce"/> property to return <see langword="true" /> must also override this method and cannot
/// call the base implementation.
/// </para>
/// </remarks>
Reduces this instance to a tree of standard expressions. If this instance cannot be reduced, the same
is returned.
Reduces this instance to a tree of standard expressions . If this instance cannot be reduced the same is returned .
public virtual Expression Reduce ()
    {
      if (CanReduce)
        throw new InvalidOperationException ("Reducible nodes must override the Reduce method.");
      return this;
    }
public virtual Expression Reduce ( ) { if ( CanReduce ) throw new InvalidOperationException ( " " ) ; return this ; }
Reduces this instance to a tree of standard expressions.
Reduces this instance to a tree of standard expressions .
If  is , a reduced version of this ; otherwise,
this .
If is a reduced version of this ; otherwise this .
remarks
This method can be called in order to produce a new  that has the same semantics as this
but consists of expressions of standard node types. The reduction need not be complete, nodes can be
returned that themselves must be reduced.

Subclasses overriding the  property to return  must also override this method and cannot
call the base implementation.
This method can be called in order to produce a new that has the same semantics as this but consists of expressions of standard node types . The reduction need not be complete nodes can be returned that themselves must be reduced . Subclasses overriding the property to return must also override this method and cannot call the base implementation .