Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetUserDefinedBinaryOperatorOrThrow()

static BinaryExpression System.Linq.Expressions.Expression< TDelegate >.GetUserDefinedBinaryOperatorOrThrow ( ExpressionType binaryType,
string name,
Expression< TDelegate > left,
Expression< TDelegate > right,
bool liftToNull )
inlinestaticprivateinherited

Definition at line 786 of file Expression.cs.

787 {
788 BinaryExpression userDefinedBinaryOperator = GetUserDefinedBinaryOperator(binaryType, name, left, right, liftToNull);
789 if (userDefinedBinaryOperator != null)
790 {
791 ParameterInfo[] parametersCached = userDefinedBinaryOperator.Method.GetParametersCached();
792 ValidateParamswithOperandsOrThrow(parametersCached[0].ParameterType, left.Type, binaryType, name);
793 ValidateParamswithOperandsOrThrow(parametersCached[1].ParameterType, right.Type, binaryType, name);
795 }
796 throw Error.BinaryOperatorNotDefined(binaryType, left.Type, right.Type);
797 }
static BinaryExpression GetUserDefinedBinaryOperator(ExpressionType binaryType, string name, Expression left, Expression right, bool liftToNull)
static void ValidateParamswithOperandsOrThrow(Type paramType, Type operandType, ExpressionType exprType, string name)

References System.Linq.Expressions.Error.BinaryOperatorNotDefined(), System.Linq.Expressions.Expression< TDelegate >.GetUserDefinedBinaryOperator(), and System.Linq.Expressions.Expression< TDelegate >.ValidateParamswithOperandsOrThrow().

Referenced by System.Linq.Expressions.Expression< TDelegate >.Add(), System.Linq.Expressions.Expression< TDelegate >.AddChecked(), System.Linq.Expressions.Expression< TDelegate >.And(), System.Linq.Expressions.Expression< TDelegate >.Divide(), System.Linq.Expressions.Expression< TDelegate >.ExclusiveOr(), System.Linq.Expressions.Expression< TDelegate >.GetComparisonOperator(), System.Linq.Expressions.Expression< TDelegate >.GetUserDefinedAssignOperatorOrThrow(), System.Linq.Expressions.Expression< TDelegate >.LeftShift(), System.Linq.Expressions.Expression< TDelegate >.Modulo(), System.Linq.Expressions.Expression< TDelegate >.Multiply(), System.Linq.Expressions.Expression< TDelegate >.MultiplyChecked(), System.Linq.Expressions.Expression< TDelegate >.Or(), System.Linq.Expressions.Expression< TDelegate >.RightShift(), System.Linq.Expressions.Expression< TDelegate >.Subtract(), and System.Linq.Expressions.Expression< TDelegate >.SubtractChecked().