本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.ReturnStatementSyntax.WithExpression方法的典型用法代码示例。如果您正苦于以下问题:C# ReturnStatementSyntax.WithExpression方法的具体用法?C# ReturnStatementSyntax.WithExpression怎么用?C# ReturnStatementSyntax.WithExpression使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.CodeAnalysis.CSharp.Syntax.ReturnStatementSyntax
的用法示例。
在下文中一共展示了ReturnStatementSyntax.WithExpression方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReplaceWithEmptyEnumerable
private async Task<Document> ReplaceWithEmptyEnumerable(Document document, ReturnStatementSyntax returnNullStatement, MethodDeclarationSyntax method, CancellationToken cancellationToken)
{
var semanticModel = await document.GetSemanticModelAsync(cancellationToken);
var typeSymbol = semanticModel.GetSymbolInfo(method.ReturnType, cancellationToken).Symbol as INamedTypeSymbol;
var genericTypeArgument = typeSymbol.TypeArguments.Single();
var empty = SyntaxFactory.ParseExpression($"Enumerable.Empty<{genericTypeArgument.Name}>()");
var returnEmptyStatement = returnNullStatement.WithExpression(empty);
SyntaxNode root = await document.GetSyntaxRootAsync(cancellationToken);
var newRoot = root.ReplaceNode(returnNullStatement, returnEmptyStatement);
return document.WithSyntaxRoot(newRoot) ;
}
示例2: VisitReturnStatement
public override SyntaxNode VisitReturnStatement(ReturnStatementSyntax node)
{
var newNode = node.WithExpression(
SyntaxFactory.InvocationExpression(
SyntaxFactory.MemberAccessExpression(
SyntaxKind.SimpleMemberAccessExpression,
SyntaxFactory.ParseName("System.Threading.Tasks.Task")
.WithAdditionalAnnotations(Simplifier.Annotation),
SyntaxFactory.IdentifierName("FromResult")),
SyntaxFactory.ArgumentList().AddArguments(SyntaxFactory.Argument(node.Expression))));
return base.VisitReturnStatement(newNode);
}
示例3: VisitReturnStatement
/// <summary>
/// Normalizes the <paramref name="statement" />.
/// </summary>
public override SyntaxNode VisitReturnStatement(ReturnStatementSyntax statement)
{
var methodSymbol = SemanticModel.GetEnclosingSymbol(statement.SpanStart) as IMethodSymbol;
if (methodSymbol == null)
return base.VisitReturnStatement(statement);
if (!IsFormulaType(methodSymbol.ReturnType))
return base.VisitReturnStatement(statement);
return statement.WithExpression(ReplaceImplicitConversion(statement.Expression));
}