ToInt32() public method

public ToInt32 ( ) : int
return int
		public override ScriptNumber Clamp (ScriptNumber min, ScriptNumber max)
		{
			if (m_Value < min.ToInt32 ())
				return new ScriptNumberInt(m_Script, min.ToInt32());
			if (m_Value > max.ToInt32 ())
				return new ScriptNumberInt(m_Script, max.ToInt32());
			return new ScriptNumberInt(m_Script, m_Value);
		}
Beispiel #2
0
            public int Compare(ScriptObject x, ScriptObject y)
            {
                ScriptNumber ret = func.Call(new ScriptObject[] { x, y }) as ScriptNumber;

                if (ret == null)
                {
                    throw new ExecutionException(script, "Sort 返回值 必须是Number类型");
                }
                return(ret.ToInt32());
            }
Beispiel #3
0
 public void Sort(ScriptFunction func)
 {
     m_listObject.Sort(new Comparison <ScriptObject>((o1, o2) => {
         ScriptNumber ret = func.Call(new ScriptObject[] { o1, o2 }) as ScriptNumber;
         if (ret == null)
         {
             throw new ExecutionException(Script, "Sort 返回值 必须是Number类型");
         }
         return(ret.ToInt32());
     }));
 }
 public override ScriptObject AssignCompute(TokenType type, ScriptNumber obj)
 {
     switch (type)
     {
         case TokenType.AssignPlus:
             m_Value += obj.ToInt32();
             return this;
         case TokenType.AssignMinus:
             m_Value -= obj.ToInt32();
             return this;
         case TokenType.AssignMultiply:
             m_Value *= obj.ToInt32();
             return this;
         case TokenType.AssignDivide:
             m_Value /= obj.ToInt32();
             return this;
         case TokenType.AssignModulo:
             m_Value %= obj.ToInt32();
             return this;
         case TokenType.AssignInclusiveOr:
             m_Value |= obj.ToInt32();
             return this;
         case TokenType.AssignCombine:
             m_Value &= obj.ToInt32();
             return this;
         case TokenType.AssignXOR:
             m_Value ^= obj.ToInt32();
             return this;
         case TokenType.AssignShr:
             m_Value >>= obj.ToInt32();
             return this;
         case TokenType.AssignShi:
             m_Value <<= obj.ToInt32();
             return this;
         default:
             throw new ExecutionException(Script, "Int不支持的运算符 " + type);
     }
 }
 public override ScriptObject Compute(TokenType type, ScriptNumber obj)
 {
     switch (type)
     {
         case TokenType.Plus:
             return Script.CreateLong(m_Value + obj.ToLong());
         case TokenType.Minus:
             return Script.CreateLong(m_Value - obj.ToLong());
         case TokenType.Multiply:
             return Script.CreateLong(m_Value * obj.ToLong());
         case TokenType.Divide:
             return Script.CreateLong(m_Value / obj.ToLong());
         case TokenType.Modulo:
             return Script.CreateLong(m_Value % obj.ToLong());
         case TokenType.InclusiveOr:
             return Script.CreateLong(m_Value | obj.ToLong());
         case TokenType.Combine:
             return Script.CreateLong(m_Value & obj.ToLong());
         case TokenType.XOR:
             return Script.CreateLong(m_Value ^ obj.ToLong());
         case TokenType.Shr:
             return Script.CreateLong(m_Value >> obj.ToInt32());
         case TokenType.Shi:
             return Script.CreateLong(m_Value << obj.ToInt32());
         default:
             throw new ExecutionException(Script, "Long不支持的运算符 " + type);
     }
 }