_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.

Visual Studio pole prywatne

Na szczęście można to ustawić w Visual Studio.

Z meni wybierz Tools i kliknij na Options

Z meni wybierz Tools i kliknij na Options Visual Studio

Potem wybierz Text Editor, a potem "C#".

Potem wybierz Text Editor, a potem C#. Visual Studio

Potem wybierz CodeStyle, a potem Naming.

Potem wybierz CodeStyle, a potem Naming.visual Studio

Potem wciśnij klawisz "Manage naming styles" :

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.

Naming Style Visual Studio

Pozostaje nam zdefiniować naszą zasadę. Chcemy wymagać znaku "_" oraz wszystko ma być pisane w stylu camel Case Name.

Nasz nowy styl w Visual Studio

Teraz w poprzednim oknie naciśnij znak plus.

Naciśnij znak plus w Visual Studio

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.

Uzupełnij te nowe pole w następujący sposób. Visual Studio

Teraz możesz zobaczyć różnice, gdy korzystasz z pomocy Visual Studio

Wypróbuj pisanie prywatnych pól

Dotyczy to także generowanie pól prywatnych korzystając z refactoringu Visual Studio.

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 = _