コード例 #1
0
 private Expression FixCaseLiteralValue(LiteralExpression literalCondition)
 {
     V_0 = this.theSwitch.get_Condition().get_ExpressionType();
     V_1 = Convert.ToInt32(literalCondition.get_Value()) + this.conditionOffset;
     literalCondition.set_Value(V_1);
     V_2 = this.context.get_MethodContext().get_Method().get_Module().get_TypeSystem();
     if (String.op_Equality(V_0.get_Name(), "System.Nullable`1") && V_0.get_HasGenericParameters())
     {
         V_0 = V_0.get_GenericParameters().get_Item(0);
     }
     if (String.op_Equality(V_0.get_FullName(), V_2.get_Char().get_FullName()))
     {
         return(new LiteralExpression((object)Convert.ToChar(V_1), V_2, null));
     }
     if (String.op_Equality(V_0.get_FullName(), V_2.get_Boolean().get_FullName()))
     {
         return(new LiteralExpression((object)Convert.ToBoolean(V_1), V_2, null));
     }
     V_3 = V_0.Resolve();
     if (V_3 == null || !V_3.get_IsEnum())
     {
         return(literalCondition);
     }
     V_4 = EnumHelper.GetEnumExpression(V_3, literalCondition, V_2);
     if (V_4 as LiteralExpression != null)
     {
         V_4 = new ExplicitCastExpression(V_4, V_3, null);
     }
     return(V_4);
 }