【发布时间】:2017-01-21 12:08:34
【问题描述】:
我正在尝试使用 roslyn 来获取方法的返回语句,因为我正在使用这个:
var returns = methods.DescendantNodes().OfType<ReturnStatementSyntax>();
这行得通,它给了我所有的返回语句。但是现在,我想得到所有的返回值,忽略 lambda 表达式中的返回值。
我该怎么做?
是否有任何属性表明这一点?
【问题讨论】:
我正在尝试使用 roslyn 来获取方法的返回语句,因为我正在使用这个:
var returns = methods.DescendantNodes().OfType<ReturnStatementSyntax>();
这行得通,它给了我所有的返回语句。但是现在,我想得到所有的返回值,忽略 lambda 表达式中的返回值。
我该怎么做?
是否有任何属性表明这一点?
【问题讨论】:
我不确定,但您可以尝试类似的方法:
method.DescendantNodes().OfType<ReturnStatementSyntax>().Where(
rs => !(rs.AncestorsAndSelf().OfType<LambdaExpressionSyntax>().Any())
);
希望这能解决你的问题。
【讨论】: