罗斯琳(Roslyn)检测到三元操作员?:



我一直在寻找一种解决方案,该解决方案允许使用Roslyn Analyzer库找到true ? DoIt() : DoItNot();的三元运算符。

我提出了以下解决方案,但这仅返回"标准"如果else-expressions。

var ifStatement = tree.GetRoot().DescendantNodes().OfType<IfStatementSyntax>().First();

我确实搜索了另一个SyntaxKind,但是我没有找到我想要的东西。因此,如果有人解决我的问题,我会很高兴。

您正在寻找SyntaxKind.ConditionalExpression

tree.GetRoot()
    .DescendantNodes()
    .Where(node => node.IsKind(SyntaxKind.ConditionalExpression))

最新更新