当前位置: 首页>>代码示例>>C#>>正文


C# CodeGen.EmitCallHelper方法代码示例

本文整理汇总了C#中CodeGen.EmitCallHelper方法的典型用法代码示例。如果您正苦于以下问题:C# CodeGen.EmitCallHelper方法的具体用法?C# CodeGen.EmitCallHelper怎么用?C# CodeGen.EmitCallHelper使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CodeGen的用法示例。


在下文中一共展示了CodeGen.EmitCallHelper方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: EmitGet

		internal override void EmitGet(CodeGen g)
		{
			MethodBase mb = (MethodBase)method.Method.Member;

			if (!mb.IsStatic)
				target.EmitRef(g);

			method.EmitArgs(g, args);
			g.EmitCallHelper(mb, target);
		}
开发者ID:amithasan,项目名称:Framework-Class-Library-Extension,代码行数:10,代码来源:Invocation.cs

示例2: EmitGet

		protected internal override void EmitGet(CodeGen g)  
        {
		    OperandExtensions.SetLeakedState(this, false); 
			MethodBase mb = (MethodBase)_method.Method.Member;

			if (!mb.IsStatic)
				_target.EmitRef(g);

			_method.EmitArgs(g, _args);
			g.EmitCallHelper(mb, _target);
		}
开发者ID:AqlaSolutions,项目名称:runsharp,代码行数:11,代码来源:Invocation.cs

示例3: EmitGet

		internal override void EmitGet(CodeGen g)
		{
			PropertyInfo pi = (PropertyInfo)property.Method.Member;
			MethodInfo mi = pi.GetGetMethod(true);

			if (mi == null)
			{
				base.EmitGet(g);
				return;
			}

			if (!mi.IsStatic)
				target.EmitRef(g);

			property.EmitArgs(g, indexes);
			g.EmitCallHelper(mi, target);
		}
开发者ID:amithasan,项目名称:Framework-Class-Library-Extension,代码行数:17,代码来源:Property.cs

示例4: EmitGet

		protected internal override void EmitGet(CodeGen g)  
        {
		    OperandExtensions.SetLeakedState(this, false); 
			PropertyInfo pi = (PropertyInfo)_property.Method.Member;
			MethodInfo mi = pi.GetGetMethod(true);

			if (mi == null)
			{
				base.EmitGet(g);
				return;
			}

			if (!mi.IsStatic)
				_target.EmitRef(g);

			_property.EmitArgs(g, _indexes);
			g.EmitCallHelper(mi, _target);
		}
开发者ID:AqlaSolutions,项目名称:runsharp,代码行数:18,代码来源:Property.cs

示例5: EmitSet

		internal override void EmitSet(CodeGen g, Operand value, bool allowExplicitConversion)
		{
			PropertyInfo pi = (PropertyInfo)property.Method.Member;
			MethodInfo mi = pi.GetSetMethod(true);

			if (mi == null)
			{
				base.EmitSet(g, value, allowExplicitConversion);
				return;
			}

			if (!mi.IsStatic)
				target.EmitRef(g);

			property.EmitArgs(g, indexes);
			g.EmitGetHelper(value, Type, allowExplicitConversion);
			g.EmitCallHelper(mi, target);
		}
开发者ID:amithasan,项目名称:Framework-Class-Library-Extension,代码行数:18,代码来源:Property.cs

示例6: EmitSet

	    protected internal override void EmitSet(CodeGen g, Operand value, bool allowExplicitConversion)
	    {
		    OperandExtensions.SetLeakedState(this, false); 
			LoadArrayAndIndexes(g);

	        if (_indexes.Length == 1)
	        {
	            g.EmitStelemHelper(GetReturnType(g.TypeMapper), value, allowExplicitConversion);
	        }
	        else
	        {
                g.EmitGetHelper(value, GetReturnType(g.TypeMapper), allowExplicitConversion);
	            g.EmitCallHelper(
	                (MethodBase)g.TypeMapper.TypeInfo.FindMethod(
	                    _array.GetReturnType(g.TypeMapper),
	                    "Set",
	                    ArrayUtils.Combine(_indexes, value),
	                    false).Method.Member,
	                _array);
	        }
	    }
开发者ID:AqlaSolutions,项目名称:runsharp,代码行数:21,代码来源:ArrayAccess.cs

示例7: EmitGet

	    protected internal override void EmitGet(CodeGen g) 
	    {
		    OperandExtensions.SetLeakedState(this, false); 
			LoadArrayAndIndexes(g);

			if (_indexes.Length == 1)
			{
				g.EmitLdelemHelper(GetReturnType(g.TypeMapper));
			}
			else
            {
                g.EmitCallHelper(
                    (MethodBase)g.TypeMapper.TypeInfo.FindMethod(
                        _array.GetReturnType(g.TypeMapper),
                        "Get",
                        _indexes,
                        false).Method.Member,
                    _array);
            }
		}
开发者ID:AqlaSolutions,项目名称:runsharp,代码行数:20,代码来源:ArrayAccess.cs

示例8: EmitSet

		protected internal override void EmitSet(CodeGen g, Operand value, bool allowExplicitConversion)
		{
		    OperandExtensions.SetLeakedState(this, false);  
			PropertyInfo pi = (PropertyInfo)_property.Method.Member;
			MethodInfo mi = pi.GetSetMethod(true);

			if (mi == null)
			{
				base.EmitSet(g, value, allowExplicitConversion);
				return;
			}

			if (!mi.IsStatic)
				_target.EmitRef(g);

			_property.EmitArgs(g, _indexes);
			g.EmitGetHelper(value, GetReturnType(g.TypeMapper), allowExplicitConversion);
			g.EmitCallHelper(mi, _target);
		}
开发者ID:AqlaSolutions,项目名称:runsharp,代码行数:19,代码来源:Property.cs


注:本文中的CodeGen.EmitCallHelper方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。