假设您在Roslyn中有2个SyntaxNode
,并且您想检查它们是否处于父/子关系中。
Roslyn是否为此提供了实用方法,而不是自己使用walker并自己实现逻辑(有许多方法,也使用Parent
属性)?类似的东西:
bool IsChildParentOf(SyntaxNode node1, SyntaxNode node2);
所以,只是为了澄清,我在问,因为在Roslyn中可能有一种优化方式来做到这一点:
bool IsChildOf(SyntaxNode node, SyntaxNode parent) {
for (var currentNode = node; currentNode != null; currentNode = currentNode.Parent)
if (currentNode == parent) return true
return false;
}
例如,在浏览器中,您可以使用内部词典来保持对元素的引用。这些引用有助于将搜索操作固定在树中。也许罗斯林也有这个功能吗?