Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
C# dilinde bir türün (sınıf, yapı veya kayıt) tanımı, türün neler yapabileceğini belirten bir şema gibidir. Nesne temelde şemaya göre ayrılan ve yapılandırılan bir bellek bloğudur. Bu makalede, bu şemalara ve bunların özelliklerine genel bir bakış sağlanır. Bu serinin sonraki makalesinde nesneler tanıtabilirsiniz.
Kapsülleme
Kapsülleme bazen nesne odaklı programlamanın ilk yapı taşı veya ilkesi olarak adlandırılır. Bir sınıf veya yapı, üyelerinden her birinin sınıfın veya yapının dışında kod oluşturmanın ne kadar erişilebilir olduğunu belirtebilir. Sınıf veya derleme dışındaki tüketicilere yönelik olmayan üyeler, kodlama hataları veya kötü amaçlı açıklardan yararlanma olasılığını sınırlamak için gizlenir. Daha fazla bilgi için bkz. Nesne odaklı programlama öğreticisi .
Üyeler
Bir türün üyeleri tüm yöntemleri, alanları, sabitleri, özellikleri ve olayları içerir. C# dilinde, diğer bazı dillerde olduğu gibi genel değişkenler veya yöntemler yoktur. Bir programın giriş noktası olan Main
yöntemi bile bir sınıf veya yapı içinde bildirilmelidir ( üst düzey deyimleri kullandığınızda örtük olarak).
Aşağıdaki liste, bir sınıfta, yapıda veya kayıtta bildirilebilen tüm çeşitli üye türlerini içerir.
- Alanları
- Sabitler
- Özellikler
- Yöntemler
- Kurucular
- Etkinlikler
- Sonlandırıcılar
- Dizinleyiciler
- Operatörler
- İç İçe Türler
Daha fazla bilgi için bkz. Üyeler.
Erişilebilirlik
Bazı yöntemlerin ve özelliklerin çağrılması veya istemci kodu olarak bilinen bir sınıf veya yapı dışındaki koddan erişilmesi amaçlanır. Diğer yöntemler ve özellikler yalnızca sınıf ya da yapının kendisinde kullanılmak üzere olabilir. Yalnızca hedeflenen istemci kodunun ulaşabilmesi için kodunuzun erişilebilirliğini sınırlamak önemlidir. Aşağıdaki erişim değiştiricileri kullanarak türlerinizin ve üyelerinizin istemci koduna ne kadar erişilebilir olduğunu belirtirsiniz:
Varsayılan erişilebilirlik değeridir private
.
Miras
Sınıflar (ancak yapılar değil) kalıtım kavramını destekler. Temel sınıf olarak adlandırılan başka bir sınıftan türetilen bir sınıf, oluşturucuları ve sonlandırıcıları dışında temel sınıfın tüm genel, korumalı ve iç üyelerini otomatik olarak içerir.
Sınıflar soyut olarak bildirilebilir; başka bir deyişle bir veya daha fazla yöntemin uygulaması yoktur. Soyut sınıflar doğrudan örneklenemez, ancak eksik uygulamayı sağlayan diğer sınıflar için temel sınıflar olarak görev yapabilir. Sınıflar, diğer sınıfların onlardan devralmalarını önlemek için korumalı olarak da bildirilebilir.
Daha fazla bilgi için bkz . Devralma ve Çok biçimlilik.
Arayüzler
Sınıflar, yapılar ve kayıtlar birden çok arabirim uygulayabilir. Bir arabirimden uygulamak, türün arabirimde tanımlanan tüm yöntemleri uyguladığı anlamına gelir. Daha fazla bilgi için bakınız Arabirimler.
Genel Türler
Sınıflar, yapılar ve kayıtlar bir veya daha fazla tür parametresiyle tanımlanabilir. İstemci kodu, bir tür örneği oluşturduğunda tipi belirler. Örneğin, List<T> ad alanı sınıfı System.Collections.Generic bir tür parametresiyle tanımlanır. İstemci kodu, listenin tuttuğu türü belirtmek için bir List<string>
veya List<int>
örneği oluşturur. Daha fazla bilgi için bkz. Genel Bilgiler.
Statik Türler
Sınıflar (yapılar veya kayıtlar değil) olarak static
bildirilebilir. Statik sınıf yalnızca statik üyeler içerebilir ve anahtar sözcüğüyle new
örneği oluşturulamaz. Program yüklendiğinde sınıfın bir kopyası belleğe yüklenir ve sınıfın üyelerine sınıf adı üzerinden erişilir. Sınıflar, yapılar ve kayıtlar statik üyeler içerebilir. Daha fazla bilgi için bkz. Statik sınıflar ve statik sınıf üyeleri.
İç İçe Türler
Bir sınıf, yapı veya kayıt başka bir sınıf, yapı veya kayıt içinde iç içe yerleştirilebilir. Daha fazla bilgi için bkz. İç İçe Türler.
Kısmi Türler
Bir kod dosyasında sınıf, yapı veya yöntemin bir bölümünü, başka bir bölümünü de ayrı bir kod dosyasında tanımlayabilirsiniz. Daha fazla bilgi için bkz . Kısmi Sınıflar ve Yöntemler.
Nesne Başlatıcıları
Özelliklerine değer atayarak sınıf veya yapı nesnelerinin ve nesne koleksiyonlarının örneğini oluşturabilir ve başlatabilirsiniz. Daha fazla bilgi için bkz. Nesne başlatıcı kullanarak nesneleri başlatma.
Anonim Türler
Uygun olmayan veya adlandırılmış bir sınıf oluşturmanın gerekli olmadığı durumlarda anonim türler kullanırsınız. Adlandırılmış veri üyeleri anonim türleri tanımlar. Daha fazla bilgi için bkz. Anonim türler.
Uzantı Üyeleri
Ayrı bir tür oluşturarak türetilmiş bir sınıf oluşturmadan bir sınıfı "genişletebilirsiniz". Bu tür, özgün türe aitmiş gibi çağrılabilecek yöntemler içerir. Daha fazla bilgi için bkz . Uzantı yöntemleri.
Örtülü Olarak Yazılan Yerel Değişkenler
Bir sınıf veya yapı yönteminde, derleyiciye derleme zamanında bir değişkenin türünü belirlemesini bildirmek için örtük yazma kullanabilirsiniz. Daha fazla bilgi için bkz. var (C# başvurusu).
Kayıtlar
Değiştiriciyi record
bir sınıfa veya yapıya ekleyebilirsiniz. Kayıtlar, değer tabanlı eşitlik için yerleşik davranışa sahip türlerdir. Kayıt ( record class
veya record struct
) aşağıdaki özellikleri sağlar:
- Sabit özelliklere sahip bir başvuru türü oluşturmak için kısa söz dizimi.
- Değer eşitliği. Bir kayıt türünün iki değişkeni aynı türe sahipse eşittir ve her alan için her iki kayıttaki değerler eşitse. Sınıflar başvuru eşitliğini kullanır: Bir sınıf türünün iki değişkeni, aynı nesneye başvururlarsa eşittir.
- Yok edici olmayan mutasyon için kısa söz dizimi.
İfade
with
, mevcut bir örneğin kopyası olan ancak belirtilen özellik değerleri değiştirilmiş yeni bir kayıt örneği oluşturmanıza olanak tanır. - Görüntüleme için yerleşik biçimlendirme.
yöntemi,
ToString
kayıt türü adını ve ortak özelliklerin adlarını ve değerlerini yazdırır. - Kayıt sınıflarında devralma hiyerarşileri desteği. Kayıt sınıfları devralmayı destekler. Kayıt yapıları devralmayı desteklemez.
Daha fazla bilgi için bkz . Kayıtlar.
C# Dil Belirtimi
Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# söz dizimi ve kullanımı için kesin kaynaktır.