コード例 #1
0
        public void VisitAnonymousMethodExpression(AnonymousMethodExpressionSyntax node)
        {
            if (node == null)
                throw new ArgumentNullException("node");

            node.Validate();

            ExpressionStart(node);

            if (node.Modifiers != Modifiers.None)
            {
                _writer.WriteModifiers(node.Modifiers);
                _writer.WriteSpace();
            }

            _writer.WriteKeyword(PrinterKeyword.Delegate);
            node.ParameterList.Accept(this);

            _writer.PushBraceFormatting(_writer.Configuration.BracesLayout.AnonymousMethodDeclaration, false);

            bool isSimple =
                _writer.Configuration.LineBreaksAndWrapping.Other.PlaceSimpleAnonymousMethodOnSingleLine &&
                IsSimpleBody(node.Block);

            if (isSimple)
                _writer.PushSingleLineBody(true);

            node.Block.Accept(this);

            if (isSimple)
                _writer.PopSingleLineBody();

            _writer.PopBraceFormatting();

            ExpressionEnd(node);
        }