Boo.Lang.Compiler.Steps.EmitAssembly.GetLoadRefParamCode C# (CSharp) Метод

GetLoadRefParamCode() приватный Метод

private GetLoadRefParamCode ( IType tag ) : OpCode
tag IType
Результат OpCode
        OpCode GetLoadRefParamCode(IType tag)
        {
            if (tag.IsValueType)
            {
                if (tag.IsEnum)
                {
                    tag = TypeSystemServices.Map(GetEnumUnderlyingType(tag));
                }
                if (TypeSystemServices.IntType == tag)
                {
                    return OpCodes.Ldind_I4;
                }
                if (IsLong(tag) ||
                    TypeSystemServices.ULongType == tag)
                {
                    return OpCodes.Ldind_I8;
                }
                if (TypeSystemServices.ByteType == tag)
                {
                    return OpCodes.Ldind_U1;
                }
                if (TypeSystemServices.ShortType == tag ||
                    TypeSystemServices.CharType == tag)
                {
                    return OpCodes.Ldind_I2;
                }
                if (TypeSystemServices.SingleType == tag)
                {
                    return OpCodes.Ldind_R4;
                }
                if (TypeSystemServices.DoubleType == tag)
                {
                    return OpCodes.Ldind_R8;
                }
                if (TypeSystemServices.UShortType == tag)
                {
                    return OpCodes.Ldind_U2;
                }
                if (TypeSystemServices.UIntType == tag)
                {
                    return OpCodes.Ldind_U4;
                }

                return OpCodes.Ldobj;
            }
            return OpCodes.Ldind_Ref;
        }
EmitAssembly