如何解决为新成员更改模板
当我在 Visual Studio (2019) 中进行重构并说“生成字段”时,默认情况下它总是在新字段之前添加“私有”关键字。我不要这个。如何修改此行为?
我不确定此功能是由 Visual Studio 本身提供还是由 roslinator 提供。
private int foo; // no!
int foo; // yes!
解决方法
如果您进入 Tools
|Code Snippets Manager...
菜单:
它将打开代码片段管理器。
- 在语言下拉菜单中选择
CSharp
。 - 在树中转到
Refactoring
|Generate field
它会给你代码片段的位置,在我的机器上(法语语言环境)是:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC#\Snippets\1033\Refactoring\GenerateField.snippet
然后您可以编辑文件以将可访问性更改为所需的值。
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Generate Field</Title>
<Description>Snippet for the field created by the 'Generate Field' refactoring</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Refactoring</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="true">
<ID>accessibility</ID>
<!-- put public here,actually on my machine it is already public -->
<Default>public</Default>
</Literal>
<Literal Editable="true">
<ID>modifiers</ID>
<Default></Default>
</Literal>
<Literal Editable="true">
<ID>type</ID>
<Default>type</Default>
</Literal>
<Literal Editable="true">
<ID>signature</ID>
<Default>signature</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[$end$$accessibility$ $modifiers$ $type$ $signature$;]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
但您也可以基于此创建自己的代码段,将其命名为“生成公共字段”并按照 here 所述进行注册。
编辑:
我在 Roslynator sources 中没有找到任何关于此的信息。它绝对看起来像一个 VS quick action。 Roslyn/VS 中存在一个关于类似 here 的错误,并且与 a bug that impact many quick action 相关。 这个错误已被修复。看起来你只需要配置你的编辑器:
将以下内容添加到项目根目录下的 .editorconfig 文件中:
dotnet_style_require_accessibility_modifiers = omit_if_default:suggestion
查看 dotnet_style_require_accessibility_modifiers
here 的选项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。