Remotion.Linq.SqlBackend.ConversionUtility.MakeBinaryWithOperandConversion C# (CSharp) Метод

MakeBinaryWithOperandConversion() публичный статический Метод

public static MakeBinaryWithOperandConversion ( ExpressionType expressionType, Expression left, Expression right, bool isLiftedToNull, MethodInfo methodInfo ) : BinaryExpression
expressionType ExpressionType
left System.Linq.Expressions.Expression
right System.Linq.Expressions.Expression
isLiftedToNull bool
methodInfo System.Reflection.MethodInfo
Результат System.Linq.Expressions.BinaryExpression
    public static BinaryExpression MakeBinaryWithOperandConversion (
        ExpressionType expressionType, 
        Expression left, 
        Expression right, 
        bool isLiftedToNull, 
        MethodInfo methodInfo)
    {
      ArgumentUtility.CheckNotNull ("left", left);
      ArgumentUtility.CheckNotNull ("right", right);

      if (NeedsConversion (expressionType, left, right))
      {
        if (left.Type.IsAssignableFrom (right.Type))
          right = Expression.Convert (right, left.Type);
        else if (right.Type.IsAssignableFrom (left.Type))
          left = Expression.Convert (left, right.Type);
        else
        {
          left = Expression.Convert (left, typeof (object));
          right = Expression.Convert (right, typeof (object));
        }
      }

      return Expression.MakeBinary (expressionType, left, right, isLiftedToNull, methodInfo);
    }