public ve private erişim anahtar sözcükleri erişim konusunda iki uç durum oluşturur: bir sınıfın
public (ortak) alanları ve yöntemleri herkesin erişimine açık iken, private (özel) alanları ve
yöntemleri sadece sınıfın kendisi tarafından erişilebilir.
Bu iki uç durum, sınıfları tek başlarına düşünürken yeterlidir. Bununla birlikte, nesne
yönelimli programlama dilinde uzman programcıların tümünün bildiği gibi, tek başlarına
sınıflar karmaşık problemleri çözemezler. Kalıtım, sınıfları birleştirmenin güçlü bir yoludur ve
türetilmiş bir sınıf ile onun temel sınıfı arasında çok özel ve yakın bir ilişki vardır. Çoğunlukla, bir temel sınıf için, temel sınıfın bazı üyelerini hiyerarşide yer almayan sınıflardan gizlerken,
türetilmiş sınıfların bu üyelere erişmesine izin vermek yararlıdır. Bu şekilde üyeleri belirlemek
için, protected (korumalı) anahtar sözcüğünü kullanabilirsiniz:
n Bir A sınıfı, B sınıfından türetilmiş ise, B sınıfının korunmuş üyelerine erişebilir. Diğer bir
deyişle, türetilmiş A sınıfı içinde, B sınıfının korumalı üyesi etkin biçimde ortaktır.
n A sınıfı, B sınıfından türetilmiş değilse, B sınıfının korumalı üyelerine erişemez. Diğer bir
deyişle, A sınıfı içinde, B sınıfının korumalı üyesi etkin olarak özeldir.
C#, programcılara hem yöntemleri hem de alanları korumalı olarak bildirmek için tam bir
özgürlük vermektedir. Bununla birlikte, nesne-yönelimli programcılık kılavuzlarının çoğu,
alanlarınızı kesinlikle özel tutmanızı önerir. Sınıfın tüm kullanıcılarının alanlara doğrudan,
sınırsız erişimi olduğundan ortak alanlar kapsüllemeyi bozarlar. Korumalı alanlar, bu alanlara
erişemeyen sınıfın kullanıcılarına kapsülleme sağlar. Bununla birlikte, korumalı alanlar,
kapsüllemenin, sınıftan kalıtımla alan sınıflar tarafından bozulmasına hala izin vermektedir.
public ve private erişim anahtar sözcükleri erişim konusunda iki uç durum oluşturur: bir sınıfın