Как настроить ярлык генерации выделенного поля Visual Studio для конструкторов?
VS 2017 (и, возможно, старые версии) дает мне этот удобный небольшой конструктор ярлык для создания поля private readonly
и его назначения.
Скриншот:
![введите описание изображения здесь]()
В результате создается частный член с именем userService
, а затем присваивается его:
this.userService = userService;
Это противоречит стилю кода, который я использую для обозначения всех закрытых членов с префиксом _
, что приводит к присваиванию, которое должно выглядеть следующим образом:
_userService = userService;
Как я могу сделать так, чтобы VS выполнял это правило стиля кода с помощью ярлыков генерации кода?
Ответы
Ответ 1
Это также может быть достигнуто непосредственно в Visual Studio. Просто перейдите на Tools -> Options -> Text Editor -> C# -> Code Style -> Naming
.
- Во-первых, вам нужно определить новый стиль именования, нажав кнопку "Управление стилями именования":
![VS2017 Naming style dialog]()
- Затем нажмите знак "+", чтобы определить новое правило для "Частного или внутреннего поля", в котором используется новый стиль именования:
![VS2017 Options dialog]()
Перезапустите Visual Studio
После этого, когда вы примените рефакторинг "Создать и инициализировать поле", он будет назван с подчеркиванием.
Ответ 2
Настройки.editorconfig - ответ kspearrin не работал для меня, я должен был использовать их (для VS2017 Version 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
Ответ 3
Этого можно достичь, создав собственное правило именования 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 = _
Результат:
![enter image description here]()