如何让Visual Studio代码片段单字段自动生成驼峰/帕斯卡命名代码?
实现方案
可以实现,根据你使用的Visual Studio版本有不同的适配方式:
方案1:VS2022 17.6及以上版本原生支持
VS从2022 17.6版本开始为C#代码片段新增了内置字符串处理函数,其中ToCamelCase()正好可以满足帕斯卡命名的属性名转驼峰命名备份字段的需求,你只需要修改原有片段中backingFieldName的声明配置即可:
- 给
backingFieldName的Literal节点添加Editable="false"属性,设为用户不可编辑 - 移除原有默认值配置,新增
<Function>ToCamelCase(propertyName)</Function>,指定该字段的值为propertyName转驼峰后的结果
修改后的完整片段代码如下:
<Snippet> <Code Language="CSharp"> <![CDATA[ private bool _$backingFieldName$; $access1$ bool $propertyName$ { $access2$ get { return _$backingFieldName$; } $access3$ set { _$backingFieldName$ = value; } } ]]> </Code> <Declarations> <Literal Editable="false"> <ID>backingFieldName</ID> <ToolTip>The name for the backing field.</ToolTip> <Function>ToCamelCase(propertyName)</Function> </Literal> <Literal> <ID>propertyName</ID> <ToolTip>The name for the property (Pascal case).</ToolTip> <Default>Name</Default> </Literal> <Literal> <ID>access1</ID> <ToolTip>Access modifier for the property.</ToolTip> <Default>private</Default> </Literal> <Literal> <ID>access2</ID> <ToolTip>Access modifier for the getter.</ToolTip> <Default>private</Default> </Literal> <Literal> <ID>access3</ID> <ToolTip>Access modifier for the setter.</ToolTip> <Default>private</Default> </Literal> </Declarations> </Snippet>
使用时你只需要填写三个访问修饰符和属性名(比如IsGrounded),备份字段会自动生成isGrounded,完全符合你的预期输出要求。
方案2:旧版本VS兼容方案
低于17.6版本的VS原生代码片段系统没有内置字符串处理能力,无法直接实现自动大小写转换,可以选择两种替代方案:
- 升级到VS2022最新版本使用原生转换能力
- 安装第三方代码片段扩展例如Snippet Designer,扩展提供了更丰富的片段逻辑编辑能力,支持自定义字符串转换规则
内容的提问来源于stack exchange,提问作者KamielDev
相关产品推荐
相关产品推荐

