AFAIK, özel, C # 'da her yerde varsayılandır
Tam olarak değil - varsayılan, "bu bildirim için mevcut en kısıtlı erişimdir". Örneğin, üst düzey bir türle varsayılan değer internal
; yuvalanmış bir tür için varsayılan değerdir private
.
Öyleyse, bu anahtar kelimeyi yazmanın nedeni nedir veya neden var?
Bunu açık hale getirir, bu da iki nedenden dolayı iyidir:
- Sorunuza göre varsayılanları bilmeyenler için daha net hale getiriyor (kişisel olarak bu argümanı hiç sevmedim, ama bahsetmeye değer olduğunu düşündüm)
- Bu ettik bir izlenim verir kasten sadece varsayılanlarla gitmiş yerine, özel yapmaya karar verdi.
Son bölümünüze gelince:
Ayrıca, "özel" (tek başına) yazmanın üyenin erişilebilirliğini değiştireceği bir durum var mı?
Evet, bir mülkün yarısını diğerinden daha kısıtlayıcı hale getirmek için:
// Public getter, public setter
public int Foo { get; set; }
// Public getter, private setter
public int Bar { get; private set; }
Ben kullanılan o bu konuda düşünce ve ettik temizlemek yapma her yerde yapabilirdim varsayılan ile gitmek, ama ben (kısmen Eric Lippert tarafından) ikna oldum karar şey gizli yapmayı iyi bir fikirdir.
Şahsen, bunu tip bildirimleri için mühürlü / mühürsüz için de yapmanın bir yolu olmasını isterdim - muhtemelen bir temerrüdü bile yok . Pek çok geliştiricinin (dikkatli olmazsam kendim de dahil) sınıfları mühürsüz bıraktığından şüpheleniyorum çünkü onları mühürlemek yerine daha az çaba gerektiriyor.
internal
varsayılan olarak "üst düzey" bir tür olacaktır .