使用Roslyn Syntax API生成C#代码:set访问器中value关键字的困惑
Roslyn Syntax API中set访问器
value的正确用法 在C#里,value是set访问器的隐式参数名,并非语法层面的保留关键字,这就是你找不到SyntaxKind.ValueKeyword的原因:
- 当你在set访问器内部使用
value时,它本质是编译器自动注入的标识符,而非语法级别的关键字。因此你用IdentifierName("value")的写法完全正确,Roslyn会在语义分析阶段自动识别它作为set访问器的隐式参数。 - 虽然
value在set访问器语境下有特殊含义,但它不属于C#的保留关键字范畴——你甚至可以在其他代码上下文里将value用作普通变量名(只是这种写法不符合编码规范),这也是Roslyn没有为它单独定义SyntaxKind枚举值的核心原因。
你当前的代码实现是正确的,不需要尝试使用不存在的Token(SyntaxKind.ValueKeyword),继续沿用IdentifierName("value")即可。
内容的提问来源于stack exchange,提问作者sasquatch
相关产品推荐
相关产品推荐

