/// <summary> /// Builds a <see langword="string"/> representing the <see cref="Expression"/>. /// </summary> /// <param name="builder">A <see cref="System.Text.StringBuilder"/> to add the created <see langword="string"/>.</param> internal override void BuildString(StringBuilder builder) { if (builder == null) { throw new ArgumentNullException("builder"); } switch (NodeType) { case ExpressionType.Negate: case ExpressionType.NegateChecked: builder.Append("-"); Operand.BuildString(builder); return; case ExpressionType.UnaryPlus: builder.Append("+"); Operand.BuildString(builder); return; case ExpressionType.Not: builder.Append("Not"); builder.Append("("); Operand.BuildString(builder); builder.Append(")"); return; case ExpressionType.Quote: Operand.BuildString(builder); return; case ExpressionType.TypeAs: builder.Append("("); Operand.BuildString(builder); builder.Append(" As "); builder.Append(Type.Name); builder.Append(")"); return; } builder.Append(NodeType); builder.Append("("); Operand.BuildString(builder); builder.Append(")"); }