ICSharpCode.NRefactory.Ast.AnonymousMethodExpression.AcceptVisitor C# (CSharp) Method

AcceptVisitor() public method

public AcceptVisitor ( AstComparisonVisitor visitor, object data ) : bool
visitor AgentRalph.Visitors.AstComparisonVisitor
data object
return bool
        public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
        {
            return visitor.VisitAnonymousMethodExpression(this, data);
        }

Same methods

AnonymousMethodExpression::AcceptVisitor ( IAstVisitor visitor, object data ) : object

Usage Example

Esempio n. 1
0
		public override object VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression, object data)
		{
			base.VisitAnonymousMethodExpression(anonymousMethodExpression, data);
			LambdaExpression lambda = new LambdaExpression();
			lambda.Parameters = anonymousMethodExpression.Parameters;
			if (anonymousMethodExpression.Body.Children.Count == 1) {
				ReturnStatement rs = anonymousMethodExpression.Body.Children[0] as ReturnStatement;
				if (rs != null)
					lambda.ExpressionBody = rs.Expression;
				else {
					lambda.StatementBody = anonymousMethodExpression.Body.Children[0] as Statement;
					lambda.ReturnType = new TypeReference("System.Void", true);
				}
			} else {
				var visitor = new ReturnStatementVisitor();
				anonymousMethodExpression.AcceptVisitor(visitor, null);
				lambda.StatementBody = anonymousMethodExpression.Body;
				if (!visitor.HasReturn)
					lambda.ReturnType = new TypeReference("System.Void", true);
			}
			ReplaceCurrentNode(lambda);
			return null;
		}