我正在尝试使用 roslyn 来获取方法的返回语句,为此我正在使用它:
var returns = methods.DescendantNodes().OfType<ReturnStatementSyntax>();
Run Code Online (Sandbox Code Playgroud)
那行得通,它给了我所有的返回语句。但是现在,我想获得所有返回值而忽略 lambda 表达式中的值。
我怎样才能做到这一点?
是否有任何财产表明这一点?
我不确定,但您可以尝试类似的操作:
method.DescendantNodes().OfType<ReturnStatementSyntax>().Where(
rs => !(rs.AncestorsAndSelf().OfType<LambdaExpressionSyntax>().Any())
);
Run Code Online (Sandbox Code Playgroud)
我希望这能解决你的问题。