Właśnie zdałem sobie sprawę, że konstrukcja właściwości C # może być również używana z modyfikatorem dostępu prywatnego :
private string Password { get; set; }
Chociaż jest to technicznie interesujące, nie mogę sobie wyobrazić, kiedy z niego skorzystam, ponieważ prywatne pole wymaga jeszcze mniej ceremonii :
private string _password;
i nie mogę sobie wyobrazić, kiedy kiedykolwiek będę musiał być w stanie uzyskać wewnętrznie, ale nie ustawić lub ustawić, ale nie uzyskać prywatnego pola:
private string Password { get; }
lub
private string Password { set; }
ale być może istnieje przypadek użycia z klasami zagnieżdżonymi / dziedziczonymi lub może gdzie get / set może zawierać logikę zamiast po prostu zwracać wartość właściwości, chociaż starałbym się zachować właściwości ściśle proste i pozwolić jawnym metodom na wykonywanie dowolnej logiki, np GetEncodedPassword()
.
Czy ktoś korzysta z własności prywatnych w języku C # z jakiegokolwiek powodu, czy jest to tylko jedna z tych technicznie możliwych, a jednak rzadko używanych w rzeczywistych konstrukcjach kodu?
Uzupełnienie
Dobre odpowiedzi, czytając je Wyrzuciłem te zastosowania dla prywatnych nieruchomości:
- kiedy pola prywatne muszą być ładowane leniwie
- gdy pola prywatne wymagają dodatkowej logiki lub są obliczonymi wartościami
- ponieważ prywatne pola mogą być trudne do debugowania
- w celu „przedstawienia sobie umowy”
- do wewnętrznej konwersji / uproszczenia odsłoniętej właściwości w ramach serializacji
- zawijanie zmiennych globalnych do wykorzystania w twojej klasie