Saya baru menyadari bahwa konstruk properti C # juga dapat digunakan dengan pengubah akses pribadi :
private string Password { get; set; }
Meskipun ini secara teknis menarik, saya tidak bisa membayangkan kapan saya akan menggunakannya karena bidang pribadi bahkan melibatkan lebih sedikit upacara :
private string _password;
dan saya tidak bisa membayangkan kapan saya harus bisa mendapatkan secara internal tetapi tidak mengatur atau mengatur tetapi tidak mendapatkan bidang pribadi:
private string Password { get; }
atau
private string Password { set; }
tapi mungkin ada kasus penggunaan dengan kelas bersarang / mewarisi atau mungkin di mana get / set mungkin berisi logika, bukan hanya memberikan kembali nilai properti, meskipun saya cenderung menjaga properti sangat sederhana dan membiarkan metode eksplisit melakukan logika apa pun, mis GetEncodedPassword()
.
Apakah ada yang menggunakan properti pribadi dalam C # untuk alasan apa pun atau hanya salah satu dari konstruksi kode yang secara teknis memungkinkan namun jarang digunakan?
Tambahan
Jawaban yang bagus, membacanya, saya menggunakan ini untuk properti pribadi:
- ketika bidang pribadi harus dimuat dengan malas
- ketika bidang pribadi membutuhkan logika tambahan atau nilai yang dihitung
- karena bidang pribadi bisa sulit untuk di-debug
- untuk "memberikan kontrak kepada diri sendiri"
- untuk secara internal mengkonversi / menyederhanakan properti yang terbuka sebagai bagian dari serialisasi
- membungkus variabel global untuk digunakan di dalam kelas Anda