如何找出用于声明局部变量的关键字?我如何区分以下内容:
var hi = "asdf";
string hi = "asdf";
此外,是否有可用于编写Roslyn诊断的综合API文档?有人写过这本书了吗?
答案 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部分下的以下演练链接。
您可能会发现FAQ section在您了解Roslyn API的过程中非常有用。这些常见问题解答的答案中的代码包含在Roslyn SDK Preview中Samples文件夹下的单元测试中。 Samples文件夹还包含一些编写您可能会觉得有用的自定义Roslyn诊断的示例。