如何找出用于局部变量声明的关键字?

时间:2014-04-05 06:11:34

标签: c# roslyn

如何找出用于声明局部变量的关键字?我如何区分以下内容:

var hi = "asdf";
string hi = "asdf";

此外,是否有可用于编写Roslyn诊断的综合API文档?有人写过这本书了吗?

3 个答案:

答案 0 :(得分:4)

查看Type的{​​{1}}属性。在一种情况下,它将是LocalVariableDeclarationSyntax,而另一种情况是PredefinedTypeSyntax,其中名称恰好是" var"。

记住," var"是一个上下文关键字,并且在语法层中并不特别。

注意:我强烈建议安装Roslyn SDK zip中的SyntaxVisualizer扩展,以查看解析器对各种文本的作用。

答案 1 :(得分:0)

TypeSyntax class上有IsVar个属性。

public bool IsVar
{
    get
    {
        var ts = this.Green as InternalSyntax.IdentifierNameSyntax;
        return ts != null && ts.Identifier.ToString() == "var";
    }
}

答案 2 :(得分:0)

关于您关于文档的第二个问题,请查看Documentation section of the Roslyn CodePlex site。另外,对于编写自定义Roslyn诊断程序,请查看同一站点上Samples and Walkthroughs部分下的以下演练链接。

enter image description here

您可能会发现FAQ section在您了解Roslyn API的过程中非常有用。这些常见问题解答的答案中的代码包含在Roslyn SDK Preview中Samples文件夹下的单元测试中。 Samples文件夹还包含一些编写您可能会觉得有用的自定义Roslyn诊断的示例。