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

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

private GetLoadEntityOpCode ( IType type ) : OpCode
type IType
Результат OpCode
        OpCode GetLoadEntityOpCode(IType type)
        {
            if (IsByAddress(type))
                return OpCodes.Ldelema;

            if (!type.IsValueType)
            {
                return type is IGenericParameter
                    ? OpCodes.Ldelem
                    : OpCodes.Ldelem_Ref;
            }

            if (type.IsEnum)
            {
                type = TypeSystemServices.Map(GetEnumUnderlyingType(type));
            }

            if (TypeSystemServices.IntType == type)
            {
                return OpCodes.Ldelem_I4;
            }
            if (TypeSystemServices.UIntType == type)
            {
                return OpCodes.Ldelem_U4;
            }
            if (IsLong(type))
            {
                return OpCodes.Ldelem_I8;
            }
            if (TypeSystemServices.SByteType == type)
            {
                return OpCodes.Ldelem_I1;
            }
            if (TypeSystemServices.ByteType == type)
            {
                return OpCodes.Ldelem_U1;
            }
            if (TypeSystemServices.ShortType == type ||
                TypeSystemServices.CharType == type)
            {
                return OpCodes.Ldelem_I2;
            }
            if (TypeSystemServices.UShortType == type)
            {
                return OpCodes.Ldelem_U2;
            }
            if (TypeSystemServices.SingleType == type)
            {
                return OpCodes.Ldelem_R4;
            }
            if (TypeSystemServices.DoubleType == type)
            {
                return OpCodes.Ldelem_R8;
            }
            //NotImplemented("LoadEntityOpCode(" + tag + ")");
            return OpCodes.Ldelema;
        }
EmitAssembly