使用Roslyn来获取return语句,忽略lambda表达式中的语句

时间:2017-01-21 12:08:34

标签: c# return roslyn

我正在尝试使用roslyn来获取方法的return语句,因为我正在使用它:

var returns = methods.DescendantNodes().OfType<ReturnStatementSyntax>();

这很有效,它给了我所有的回复陈述。但是现在,我希望得到所有返回,忽略lambda表达式中的那些。

我该怎么做?

是否有任何属性表明?

1 个答案:

答案 0 :(得分:4)

我不确定,但你可以尝试类似的东西:

method.DescendantNodes().OfType<ReturnStatementSyntax>().Where(
     rs => !(rs.AncestorsAndSelf().OfType<LambdaExpressionSyntax>().Any())
);

我希望这能解决你的问题。