VS 2017 (et peut-être des versions plus anciennes) me donne ce petit raccourci de constructeur très pratique pour générer un private readonly
champ et attribuez-le.
Capture d'écran:
Ceci finit par générer un membre privé appelé userService
et l'assigne ensuite avec:
this.userService = userService;
Cela va à l’encontre du style de code que j’utilise, qui consiste à nommer tous les membres privés avec un préfixe _
résultant en une affectation qui devrait ressembler à:
_userService = userService;
Comment puis-je faire en sorte que VS respecte cette règle de style de code avec ses raccourcis de génération de code?
Cela peut également être réalisé directement dans Visual Studio. Il suffit d'aller à Tools -> Options -> Text Editor -> C# -> Code Style -> Naming
.
Tout d'abord, vous devez définir un nouveau style de nommage en cliquant sur le bouton "Gérer les styles de nommage":
Cliquez ensuite sur le signe + pour définir une nouvelle règle pour "Champ privé ou interne", qui utilise votre nouveau style de dénomination:
Après cela, lorsque vous appliquez le refactoring "Créer et initialiser le champ", il sera nommé avec un tiret bas.
Les paramètres .editorconfig sont la réponse de kspearrin qui ne fonctionnait pas pour moi. Je devais les utiliser (pour 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 = _
Je les ai obtenues ici: https://github.com/dotnet/roslyn/issues/22884#issuecomment-358776444
Pour ce faire, créez votre propre règle de dénomination Roslyn Code Analyzer. Ajouter un .editorconfig
dans votre solution pour spécifier des conventions de dénomination personnalisées.
En savoir plus sur eux ici: https://docs.Microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference
Pour obtenir l'effet souhaité de la question, voici ce qui fonctionnera:
[*.{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 = _
Résultat: