private static NegateConditionExpression ( Expression expression, TypeSystem typeSystem ) : Expression | ||
expression | Expression | |
typeSystem | TypeSystem | |
Результат | Expression |
public static Expression Negate(Expression expression, TypeSystem typeSystem) { if (expression == null) { return null; } V_1 = expression.get_CodeNodeType(); if (V_1 == 23) { return Negator.NegateUnaryExpression(expression, typeSystem); } if (V_1 == 24) { V_2 = (BinaryExpression)expression; if (!Negator.IsMathOperator(V_2.get_Operator())) { return Negator.NegateBinaryExpression(expression, typeSystem); } if (String.op_Equality(V_2.get_ExpressionType().get_FullName(), "System.Boolean")) { return new UnaryExpression(1, expression, null); } return new BinaryExpression(9, expression, new LiteralExpression((object)0, typeSystem, null), typeSystem, null, false); } if (V_1 == 36) { return Negator.NegateConditionExpression(expression, typeSystem); } if (expression.get_CodeNodeType() == 22 && String.op_Equality(expression.get_ExpressionType().get_FullName(), typeSystem.get_Boolean().get_FullName())) { return new LiteralExpression((object)(!(Boolean)(expression as LiteralExpression).get_Value()), typeSystem, expression.get_UnderlyingSameMethodInstructions()); } V_0 = expression.get_ExpressionType().GetDefaultValueExpression(typeSystem) as LiteralExpression; if (V_0 == null) { return new UnaryExpression(1, expression, null); } if (String.op_Equality(V_0.get_ExpressionType().get_FullName(), typeSystem.get_Boolean().get_FullName())) { return new UnaryExpression(1, expression, null); } return new BinaryExpression(9, expression, V_0, typeSystem, null, false); }