예제 #1
0
    // Token: 0x0600016E RID: 366 RVA: 0x0000FDDC File Offset: 0x0000DFDC
    public static Class15 <Struct87> smethod_2(Type type_0)
    {
        Class15 <Struct87> @class = new Class15 <Struct87>();
        Type type = type_0;

        for (;;)
        {
            if (type.IsArray)
            {
                @class.method_7(new Struct87
                {
                    int_0 = 2,
                    int_1 = type.GetArrayRank()
                });
            }
            else if (type.IsByRef)
            {
                @class.method_7(new Struct87
                {
                    int_0 = 1
                });
            }
            else
            {
                if (!type.IsPointer)
                {
                    break;
                }
                @class.method_7(new Struct87
                {
                    int_0 = 0
                });
            }
            type = type.GetElementType();
        }
        return(@class);
    }
예제 #2
0
    // Token: 0x0600016F RID: 367 RVA: 0x0000FE70 File Offset: 0x0000E070
    public static Class15 <Struct87> smethod_3(string string_0)
    {
        string             text   = string_0;
        Class15 <Struct87> @class = new Class15 <Struct87>();

        for (;;)
        {
            if (text.EndsWith("&", StringComparison.Ordinal))
            {
                @class.method_7(new Struct87
                {
                    int_0 = 1
                });
                text = text.Substring(0, text.Length - 1);
            }
            else if (text.EndsWith("*", StringComparison.Ordinal))
            {
                @class.method_7(new Struct87
                {
                    int_0 = 0
                });
                text = text.Substring(0, text.Length - 1);
            }
            else if (text.EndsWith("[]", StringComparison.Ordinal))
            {
                @class.method_7(new Struct87
                {
                    int_0 = 2,
                    int_1 = 1
                });
                text = text.Substring(0, text.Length - 2);
            }
            else
            {
                if (!text.EndsWith(",]", StringComparison.Ordinal))
                {
                    return(@class);
                }
                int num  = 1;
                int num2 = -1;
                for (int i = text.Length - 2; i >= 0; i--)
                {
                    char c = text[i];
                    if (c != ',')
                    {
                        if (c != '[')
                        {
                            goto Block_5;
                        }
                        num2 = i;
                        i    = -1;
                    }
                    else
                    {
                        num++;
                    }
                }
                if (num2 < 0)
                {
                    goto IL_145;
                }
                text = text.Substring(0, num2);
                @class.method_7(new Struct87
                {
                    int_0 = 2,
                    int_1 = num
                });
            }
        }
Block_5:
        throw new InvalidOperationException("VM-3012");
IL_145:
        throw new InvalidOperationException("VM-3014");
    }