示例#1
0
文件: Std.cs 项目: Luojiaoye/GLserver
    public static bool @is(object v, object t)
    {
        if ((v == null))
        {
            return(global::haxe.lang.Runtime.eq(t, typeof(object)));
        }

        if ((t == null))
        {
            return(false);
        }

        global::System.Type clt = ((global::System.Type)((t as global::System.Type)));
        if (global::haxe.lang.Runtime.typeEq(clt, null))
        {
            return(false);
        }

        {
            string _g = (clt as global::System.Reflection.MemberInfo).ToString();
            switch (_g)
            {
            case "System.Boolean":
            {
                return(v is bool);
            }


            case "System.Double":
            {
                return(v is double || v is int);
            }


            case "System.Int32":
            {
                return(global::haxe.lang.Runtime.isInt(v));
            }


            case "System.Object":
            {
                return(true);
            }
            }
        }

        global::System.Type vt = v.GetType();
        if (clt.IsAssignableFrom(((global::System.Type)(vt))))
        {
            return(true);
        }

        {
            uint _g1_idx = default(uint);
            global::System.Type[] _g1_arr = clt.GetInterfaces();
            _g1_idx = ((uint)(0));
            while (((bool)((_g1_idx < (_g1_arr as global::System.Array).Length))))
            {
                global::System.Type iface            = ((global::System.Type)(_g1_arr[((int)(_g1_idx++))]));
                global::haxe.lang.GenericInterface g = global::haxe.lang.Runtime.getGenericAttr(iface);
                if (((g != null) && global::haxe.lang.Runtime.typeEq(g.generic, clt)))
                {
                    return(iface.IsAssignableFrom(((global::System.Type)(vt))));
                }
            }
        }

        return(false);
    }
示例#2
0
    public static bool isOfType(object v, object t)
    {
        unchecked {
                        #line 32 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            if ((v == null))
            {
                                #line 33 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(false);
            }

                        #line 34 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            if ((t == null))
            {
                                #line 35 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(false);
            }

                        #line 36 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            global::System.Type clt = (t as global::System.Type);
            if (global::haxe.lang.Runtime.typeEq(clt, null))
            {
                                #line 38 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(false);
            }

                        #line 40 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            switch ((clt as global::System.Reflection.MemberInfo).ToString())
            {
            case "System.Boolean":
            {
                                        #line 46 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(v is bool);
            }


            case "System.Double":
            {
                                        #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(v is double || v is int);
            }


            case "System.Int32":
            {
                                        #line 44 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(global::haxe.lang.Runtime.isInt(v));
            }


            case "System.Object":
            {
                                        #line 48 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(true);
            }
            }

                        #line 51 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            global::System.Type vt = v.GetType();
                        #line 53 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            if (clt.IsAssignableFrom(((global::System.Type)(vt))))
            {
                                #line 54 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                return(true);
            }

                        #line 57 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            {
                                #line 57 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                global::System.Type[] _g1_arr = clt.GetInterfaces();
                                #line 57 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                uint _g1_idx = ((uint)(0));
                                #line 57 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                while ((_g1_idx < (_g1_arr as global::System.Array).Length))
                {
                                        #line 57 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                    _g1_idx += ((uint)(1));
                                        #line 57 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                    global::System.Type iface            = ((global::System.Type)(_g1_arr[((int)(((uint)((_g1_idx - 1)))))]));
                    global::haxe.lang.GenericInterface g = global::haxe.lang.Runtime.getGenericAttr(iface);
                                        #line 59 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                    if (((g != null) && global::haxe.lang.Runtime.typeEq(g.generic, clt)))
                    {
                                                #line 60 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
                        return(iface.IsAssignableFrom(((global::System.Type)(vt))));
                    }
                }
            }

                        #line 65 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\Std.hx"
            return(false);
        }
                #line default
    }