AFAIK, privat adalah default dimanapun di C #
Kurang tepat - defaultnya adalah "akses paling terbatas yang tersedia untuk deklarasi ini". Jadi misalnya, dengan tipe tingkat atas defaultnya adalah internal
; untuk tipe bersarang, defaultnya adalah private
.
Jadi, apa alasan untuk menulis kata kunci tersebut, atau mengapa kata kunci itu ada?
Itu membuatnya eksplisit, yang bagus karena dua alasan:
- Itu membuatnya lebih jelas bagi mereka yang tidak tahu defaultnya, sesuai pertanyaan Anda (saya tidak pernah menyukai argumen ini, secara pribadi, tapi saya pikir itu layak disebutkan)
- Ini memberi kesan bahwa Anda sengaja memutuskan untuk membuatnya pribadi, daripada hanya pergi dengan default.
Adapun bagian terakhir Anda:
Selain itu, adakah kasus di mana menulis "private" (sendiri) akan mengubah aksesibilitas anggota?
Ya, untuk membuat separuh properti lebih ketat daripada yang lain:
// Public getter, public setter
public int Foo { get; set; }
// Public getter, private setter
public int Bar { get; private set; }
Saya biasanya menggunakan default di mana pun saya bisa, tetapi saya telah diyakinkan (sebagian oleh Eric Lippert) bahwa memperjelas bahwa Anda telah memikirkannya dan memutuskan untuk membuat sesuatu yang bersifat pribadi adalah ide yang bagus.
Secara pribadi saya berharap ada cara untuk melakukan itu untuk disegel / tidak disegel, juga, untuk deklarasi tipe - bahkan mungkin tidak memiliki default. Saya menduga bahwa banyak pengembang (termasuk saya sendiri jika saya tidak berhati-hati) membiarkan kelas tidak disegel hanya karena usaha yang lebih sedikit daripada membuatnya tersegel.
internal
default.