_private Krótka piłka. Zapewne wiele razy pisałeś pola prywatne w C#. Większość standardów mówi, że pole prywatne powinno być pisane w stylu camelCase oraz powinno zaczynać się od podkreślenia (underscore) _camelCase.
Pole prywatne zazwyczaj są stosowane we wstrzykiwaniu zależności. Dlatego chcielibyśmy w ich nazwach odróżniać je od nazwy parametru w konstruktorze.
Tak aby nie pisać takiego kodu :
public CustomerClass(ICustomerService customerService)
{
this.customerService = customerService;
}
Tylko mieć coś takiego :
public CustomerClass(ICustomerService customerService)
{
_customerService = customerService;
}
Domyślnie Visual Studio nie sugeruje Ci pisania w takich sposób prywatnych pól.
Na szczęście można to ustawić w Visual Studio.
Z meni wybierz Tools i kliknij na Options
Potem wybierz Text Editor, a potem "C#".
Potem wybierz CodeStyle, a potem Naming.
Potem wciśnij klawisz "Manage naming styles" :
Potem wciśnij znak plus i w końcu możesz coś zdefiniować. Jeśli wszystko dobrze zrobiłeś to teraz powinieneś widzieć takie okno.
Pozostaje nam zdefiniować naszą zasadę. Chcemy wymagać znaku "_" oraz wszystko ma być pisane w stylu camel Case Name.
Teraz w poprzednim oknie naciśnij znak plus.
Uzupełnij te nowe pole w następujący sposób. W końcu chcemy zaznaczyć dla kogo ma działać nasza nowa zasada stylu.
Teraz możesz zobaczyć różnice, gdy korzystasz z pomocy Visual Studio
Dotyczy to także generowanie pól prywatnych korzystając z refactoringu Visual Studio.
Ten sam problem możesz rozwiązać dodając do solucji następujący .editorconfig file. Warto zajrzeć co można jeszcze skonfigurować przy pomocy tego pliku na : https://github.com/StevenTCramer/EditorConfig
# Instance fields are camelCase and start with _
dotnet_naming_rule.instance_fields_should_be_camel_case.severity = suggestion
dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields
dotnet_naming_rule.instance_fields_should_be_camel_case.style = instance_field_style
dotnet_naming_symbols.instance_fields.applicable_kinds = field
dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _