ksp*_*rin 96 .net c# visual-studio
VS 2017(也许是olders版本)给了我这个方便的小构造函数快捷方式来生成一个private readonly字段并分配它.
截图:
这最终会生成一个名为的私有成员userService,然后将其分配给:
this.userService = userService;
Run Code Online (Sandbox Code Playgroud)
这违背了我使用的代码样式,即使用前缀命名所有私有成员,_从而产生如下所示的赋值:
_userService = userService;
Run Code Online (Sandbox Code Playgroud)
我怎样才能使VS遵守代码生成快捷方式的代码样式规则?
小智 153
这也可以直接在Visual Studio中实现.去吧Tools -> Options -> Text Editor -> C# -> Code Style -> Naming.
首先,您需要通过单击"管理命名样式"按钮来定义新的命名样式:
然后单击+号以定义"私有或内部字段"的新规则,该规则使用新的命名样式:
之后,当您应用"创建并初始化字段"重构时,它将以前导下划线命名.
小智 27
.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 = _
Run Code Online (Sandbox Code Playgroud)
我从这里得到这些:https://github.com/dotnet/roslyn/issues/22884#issuecomment-358776444
ksp*_*rin 19
这可以通过创建自己的Roslyn Code Analyzer命名规则来实现..editorconfig在解决方案中添加a 以指定自定义命名约定.
在这里阅读更多相关信息: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 = _
Run Code Online (Sandbox Code Playgroud)
结果:
ale*_*_si 10
我阅读了以前的解决方案,尽管它们看起来是正确的,但让配置在 VS2022 中正常工作的唯一方法是正确排序 .editorconfig 条目,如下所示:
# Use underscores for private fields
[*.{cs,vb}]
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 = _
dotnet_naming_rule.private_fields_with_underscore.symbols = private_fields
dotnet_naming_rule.private_fields_with_underscore.style = prefix_underscore
dotnet_naming_rule.private_fields_with_underscore.severity = warning
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7950 次 |
| 最近记录: |