Scorpio.Util.CanChangeType C# (CSharp) Method

CanChangeType() public static method

public static CanChangeType ( ScriptObject par, Type type ) : bool
par ScriptObject
type System.Type
return bool
        public static bool CanChangeType(ScriptObject par, Type type)
        {
            if (type == TYPE_OBJECT)
                return true;
            else if (type == TYPE_SBYTE || type == TYPE_BYTE || type == TYPE_SHORT || type == TYPE_USHORT || type == TYPE_INT || type == TYPE_UINT ||
                    type == TYPE_FLOAT || type == TYPE_DOUBLE || type == TYPE_DECIMAL || type == TYPE_LONG)
                return par is ScriptNumber;
            else if (type == TYPE_BOOL)
                return par is ScriptBoolean;
            else if (type.GetTypeInfo().IsEnum)
                return par is ScriptEnum && ((ScriptEnum)par).EnumType == type;
            else if (par is ScriptNull)
                return true;
            else if (type == TYPE_STRING)
                return par is ScriptString;
            else if (type == TYPE_TYPE)
                return par is ScriptUserdata;
            else if (TYPE_DELEGATE.GetTypeInfo().IsAssignableFrom(type))
                return (par is ScriptFunction) || (par is ScriptUserdata && (par as ScriptUserdata).ValueType == type);
            else if (par is ScriptUserdata)
                return type.GetTypeInfo().IsAssignableFrom(((ScriptUserdata)par).ValueType);
            else
                return type.GetTypeInfo().IsAssignableFrom(par.GetType());
        }
        public static void WriteString(BinaryWriter writer, string str)