Microsoft.JScript.NumericBinary.DoOp C# (CSharp) Method

DoOp() private static method

private static DoOp ( Object v1, Object v2, IConvertible ic1, IConvertible ic2, JSToken operatorTok ) : Object
v1 Object
v2 Object
ic1 IConvertible
ic2 IConvertible
operatorTok JSToken
return Object
      private static Object DoOp(Object v1, Object v2, IConvertible ic1, IConvertible ic2, JSToken operatorTok){
        if (operatorTok == JSToken.Minus){
          IConvertible ic1a = ic1;
          Object p1 = Convert.ToPrimitive(v1, PreferredType.Either, ref ic1a);
          TypeCode t1 = Convert.GetTypeCode(p1, ic1a);
          if (t1 == TypeCode.Char){
            IConvertible ic2a = ic2;
            Object p2 = Convert.ToPrimitive(v2, PreferredType.Either, ref ic2a);
            TypeCode t2 = Convert.GetTypeCode(p2, ic2a);
            if (t2 == TypeCode.String){
              String str2 = ic2a.ToString(null);
              if (str2.Length == 1){
                t2 = TypeCode.Char;
                p2 = str2[0];
                ic2a = Convert.GetIConvertible(p2);
              }
            }
            Object result = NumericBinary.DoOp(Convert.ToNumber(p1, ic1a), Convert.ToNumber(p2, ic2a), operatorTok);
            if (t2 != TypeCode.Char)
              result = Convert.Coerce2(result, TypeCode.Char, false);
            return result;
          }
        }
        return NumericBinary.DoOp(Convert.ToNumber(v1, ic1), Convert.ToNumber(v2, ic2), operatorTok);
      }
      

Same methods

NumericBinary::DoOp ( Object v1, Object v2, JSToken operatorTok ) : Object
NumericBinary::DoOp ( double x, double y, JSToken operatorTok ) : Object
NumericBinary::DoOp ( int x, int y, JSToken operatorTok ) : Object
NumericBinary::DoOp ( long x, long y, JSToken operatorTok ) : Object
NumericBinary::DoOp ( uint x, uint y, JSToken operatorTok ) : Object
NumericBinary::DoOp ( ulong x, ulong y, JSToken operatorTok ) : Object

Usage Example

Ejemplo n.º 1
0
 private static Object DoOp(Object v1, Object v2, IConvertible ic1, IConvertible ic2, JSToken operatorTok)
 {
     if (operatorTok == JSToken.Minus)
     {
         IConvertible ic1a = ic1;
         Object       p1   = Convert.ToPrimitive(v1, PreferredType.Either, ref ic1a);
         TypeCode     t1   = Convert.GetTypeCode(p1, ic1a);
         if (t1 == TypeCode.Char)
         {
             IConvertible ic2a = ic2;
             Object       p2   = Convert.ToPrimitive(v2, PreferredType.Either, ref ic2a);
             TypeCode     t2   = Convert.GetTypeCode(p2, ic2a);
             if (t2 == TypeCode.String)
             {
                 String str2 = ic2a.ToString(null);
                 if (str2.Length == 1)
                 {
                     t2   = TypeCode.Char;
                     p2   = str2[0];
                     ic2a = Convert.GetIConvertible(p2);
                 }
             }
             Object result = NumericBinary.DoOp(Convert.ToNumber(p1, ic1a), Convert.ToNumber(p2, ic2a), operatorTok);
             if (t2 != TypeCode.Char)
             {
                 result = Convert.Coerce2(result, TypeCode.Char, false);
             }
             return(result);
         }
     }
     return(NumericBinary.DoOp(Convert.ToNumber(v1, ic1), Convert.ToNumber(v2, ic2), operatorTok));
 }
All Usage Examples Of Microsoft.JScript.NumericBinary::DoOp