如何在罗斯林中定义"node"类型?



我有一个代码:

public override void VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
{                        
    Console.WriteLine("Name: {0}", node.Name);
}

如何定义节点类型?例如:如果节点类型为"Product",则不要编写它。

顾名思义,MemberAccessExpressionSyntax只包含有关表达式的语法信息,而不包含任何有关类型的信息。

如果要获取类型信息,则需要为语法树创建一个Compilation并获取其SemanticModel。有了这个,你可以做一些类似的事情:

semanticModel.GetTypeInfo(node).Type.Name == "Product"

最新更新