コード例 #1
0
ファイル: DelegateInvokeStep.cs プロジェクト: chkn/cecil
		public override ICodeNode VisitMethodInvocationExpression (MethodInvocationExpression node)
		{
			var method_ref = node.Method as MethodReferenceExpression;
			if (method_ref == null)
				goto skip;
			
			var method = method_ref.Method;
			if (method.Name != "Invoke")
				goto skip;
			
			if (!method.DeclaringType.Resolve ().IsDelegate ())
				goto skip;

			var invoke = new DelegateInvocationExpression (method_ref.Target);
			
			invoke.Arguments = node.Arguments;
			
			return invoke;

		skip:
			return base.VisitMethodInvocationExpression (node);
		}
コード例 #2
0
 public virtual ICodeNode VisitDelegateInvocationExpression(DelegateInvocationExpression node)
 {
     node.Target    = (Expression)Visit(node.Target);
     node.Arguments = (ExpressionCollection)Visit(node.Arguments);
     return(node);
 }
コード例 #3
0
ファイル: BaseCodeVisitor.cs プロジェクト: chkn/cecil
		public virtual void VisitDelegateInvocationExpression (DelegateInvocationExpression node)
		{
			Visit (node.Target);
			Visit (node.Arguments);
		}
コード例 #4
0
 public virtual void VisitDelegateInvocationExpression(DelegateInvocationExpression node)
 {
     Visit(node.Target);
     Visit(node.Arguments);
 }
コード例 #5
0
ファイル: CSharpWriter.cs プロジェクト: chkn/cecil
		public override void VisitDelegateInvocationExpression (DelegateInvocationExpression node)
		{
			Visit (node.Target);
			WriteToken ("(");
			VisitList (node.Arguments);
			WriteToken (")");
		}