我有以下代码,但我找不到如何获取var TypeSyntax.有任何想法吗?
Syntax.LocalDeclarationStatement(
declaration: Syntax.VariableDeclaration(
type: Syntax.PredefinedType(Syntax.Token(SyntaxKind.VarKeyword)),
variables: Syntax.SeparatedList(
Syntax.VariableDeclarator(
identifier: Syntax.Identifier(name)))
)
)
);
Run Code Online (Sandbox Code Playgroud)
这失败了一个Argument异常,上面写着:"keyword"
Jb *_*ain 26
我用的是:
Syntax.LocalDeclarationStatement(
declaration: Syntax.VariableDeclaration(
type: Syntax.IdentifierName(Syntax.Token(SyntaxKind.VarKeyword)),
variables: Syntax.SeparatedList(
Syntax.VariableDeclarator(
identifier: Syntax.Identifier(name)))));
Run Code Online (Sandbox Code Playgroud)
Eri*_*ert 19
Jb Evain的回答是正确的; 我只是认为我会补充说错误的原因是因为"var"不是预定义的类型.预定义类型类似于"int"或"string".
该语法分析器不知道你是否有一类名为"变种"的范围; "var"不是作为预定义类型处理,而是仅作为另一种类型的另一个名称.只有当我们找不到名为"var"的作用域中的类型时,语义分析器才会决定,哦,这必须是一个隐式类型的本地.
原因是因为在C#3中添加了"var",并且可能存在使用"var"作为类型名称的C#1或2程序.我们不想打破这些计划.
对您的问题不是一个精确的答案,但实现相同影响的另一种(和更简单的)方法是使用Syntax.ParseStatement:
Syntax.ParseStatement("var " + name);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3062 次 |
| 最近记录: |