TriAxis.RunSharp.CodeGen.EmitGetHelper C# (CSharp) Method

EmitGetHelper() protected method

protected EmitGetHelper ( Operand op, Type desiredType, bool allowExplicitConversion ) : void
op Operand
desiredType IKVM.Reflection.Type
allowExplicitConversion bool
return void
        protected internal void EmitGetHelper(Operand op, Type desiredType, bool allowExplicitConversion)
        {
            if (desiredType.IsByRef)
            {
                EmitGetHelper_Ref(op, desiredType);
                return;
            }

            if ((object)op == null)
            {
                if (desiredType.IsValueType)
                    throw new ArgumentNullException(nameof(op));
                IL.Emit(OpCodes.Ldnull);
                return;
            }

            EmitGetHelper_Conversion(op, desiredType, allowExplicitConversion ? Conversion.GetExplicit(op, desiredType, false, TypeMapper) : Conversion.GetImplicit(op, desiredType, false, TypeMapper));
        }

Same methods

CodeGen::EmitGetHelper ( Operand op, Type desiredType, Conversion conv, Type from = null ) : void

Usage Example

        void EmitArg(CodeGen g, int index, Operand arg)
        {
            if (_appliedSignature[index].IsByRef)
            {
                arg.EmitAddressOf(g);
                return;
            }

            g.EmitGetHelper(arg, _appliedSignature[index], _conversions[index], @from: _paramsSignature[index]);
        }
All Usage Examples Of TriAxis.RunSharp.CodeGen::EmitGetHelper