APISampleUnitTestsCS.FAQ.ConsoleWriteLineInserter.VisitExpressionStatement C# (CSharp) Метод

VisitExpressionStatement() публичный Метод

public VisitExpressionStatement ( ExpressionStatementSyntax node ) : SyntaxNode
node ExpressionStatementSyntax
Результат SyntaxNode
            public override SyntaxNode VisitExpressionStatement(ExpressionStatementSyntax node)
            {
                SyntaxNode updatedNode = base.VisitExpressionStatement(node);

                if (node.Expression.Kind == SyntaxKind.AddAssignExpression ||
                    node.Expression.Kind == SyntaxKind.SubtractAssignExpression ||
                    node.Expression.Kind == SyntaxKind.MultiplyAssignExpression ||
                    node.Expression.Kind == SyntaxKind.DivideAssignExpression)
                {
                    // Print value of the variable on the 'Left' side of
                    // compound assignement statements encountered.
                    var compoundAssignmentExpression = (BinaryExpressionSyntax)node.Expression;
                    StatementSyntax consoleWriteLineStatement =
                        Syntax.ParseStatement(string.Format("System.Console.WriteLine({0});", compoundAssignmentExpression.Left.ToString()));

                    updatedNode =
                        Syntax.Block(Syntax.List<StatementSyntax>(
                                node.WithLeadingTrivia().WithTrailingTrivia(), // Remove leading and trailing trivia.
                                consoleWriteLineStatement))
                            .WithLeadingTrivia(node.GetLeadingTrivia())        // Attach leading trivia from original node.
                            .WithTrailingTrivia(node.GetTrailingTrivia());     // Attach trailing trivia from original node.
                }

                return updatedNode;
            }
FAQ.ConsoleWriteLineInserter