VS 2017(也许还有olders版本)为我提供了这个方便的小构造函数快捷方式来生成private readonly
字段并分配它。
截图:
这最终会生成一个名为userService
的私有成员,然后将其分配给:
this.userService = userService;
这违反了我使用的代码样式,即命名所有前缀为_
的私有成员,从而产生如下所示的赋值:
_userService = userService;
如何使VS遵守代码生成快捷方式的代码样式规则?
答案 0 :(得分:80)
这也可以直接在Visual Studio中实现。只需转到Tools -> Options -> Text Editor -> C# -> Code Style -> Naming
。
首先,您需要通过单击“管理命名样式”按钮来定义新的命名样式:
然后单击+号为“私有或内部字段”定义一个新规则,该规则将使用您的新命名方式:
在那之后,当您应用“创建并初始化字段”重构时,它将以前导下划线命名。
答案 1 :(得分:22)
.editorconfig设置是kspearrin的答案对我不起作用我必须使用这些(对于VS2017版本15.4.0):
[*.{cs,vb}]
dotnet_naming_rule.private_members_with_underscore.symbols = private_fields
dotnet_naming_rule.private_members_with_underscore.style = prefix_underscore
dotnet_naming_rule.private_members_with_underscore.severity = suggestion
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private
dotnet_naming_style.prefix_underscore.capitalization = camel_case
dotnet_naming_style.prefix_underscore.required_prefix = _
我从这里得到了这些:https://github.com/dotnet/roslyn/issues/22884#issuecomment-358776444
答案 2 :(得分:18)
这可以通过创建自己的Roslyn Code Analyzer命名规则来实现。在解决方案中添加.editorconfig
以指定自定义命名约定。
点击此处了解更多相关信息:https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference
要从问题中获得所需效果,以下内容将起作用:
[*.{cs,vb}]
dotnet_naming_rule.private_members_with_underscore.symbols = private_fields
dotnet_naming_rule.private_members_with_underscore.style = prefix_underscore
dotnet_naming_rule.private_members_with_underscore.severity = suggestion
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private
dotnet_naming_symbols.private_fields.required_modifiers = readonly
dotnet_naming_style.prefix_underscore.capitalization = camel_case
dotnet_naming_style.prefix_underscore.required_prefix = _
结果: