System.Object sınıfı
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
Object sınıfı, tüm .NET sınıflarının nihai temel sınıfıdır; tür hiyerarşisinin köküdür.
.NET'teki tüm sınıflar öğesinden Objecttüretildiğinden Object , sınıfında tanımlanan her yöntem sistemdeki tüm nesnelerde kullanılabilir. Türetilmiş sınıflar aşağıdakiler dahil olmak üzere bu yöntemlerden bazılarını geçersiz kılabilir ve geçersiz kılabilir:
- Equals: Nesneler arasındaki karşılaştırmaları destekler.
- Finalize: Bir nesne otomatik olarak geri kazanılmadan önce temizleme işlemlerini gerçekleştirir.
- GetHashCode: Karma tablo kullanımını desteklemek için nesnenin değerine karşılık gelen bir sayı oluşturur.
- ToString: Sınıfının bir örneğini açıklayan, insan tarafından okunabilen bir metin dizesi üretir.
Devralma örtük olduğundan diller genellikle devralmayı Object bildirmek için bir sınıf gerektirmez.
Performans değerlendirmeleri
Herhangi bir nesne türünü işlemesi gereken bir koleksiyon gibi bir sınıf tasarlarsanız, sınıfın Object örneklerini kabul eden sınıf üyeleri oluşturabilirsiniz. Ancak, bir türü kutulama ve kutulama işleminin performans maliyeti vardır. Yeni sınıfınızın belirli değer türlerini sıklıkla işleyebileceğini biliyorsanız, boks maliyetini en aza indirmek için iki taktiklerden birini kullanabilirsiniz.
- Bir türü kabul eden genel bir Object yöntem ve sınıfınızın sık işlemesini beklediğiniz her değer türünü kabul eden türe özgü yöntem aşırı yüklemeleri kümesi oluşturun. Çağıran parametre türünü kabul eden türe özgü bir yöntem varsa, hiçbir kutulama gerçekleşmez ve türe özgü yöntem çağrılır. Çağıran parametre türüyle eşleşen bir yöntem bağımsız değişkeni yoksa, parametre kutulanır ve genel yöntem çağrılır.
- Türünüzü ve üyelerini genel değerleri kullanacak şekilde tasarlar. Ortak dil çalışma zamanı, sınıfınızın bir örneğini oluşturduğunuzda ve genel tür bağımsız değişkeni belirttiğinizde kapalı bir genel tür oluşturur. Genel yöntem türe özgüdür ve çağırma parametresi kutulanmadan çağrılabilir.
Bazen türleri kabul eden ve döndüren Object genel amaçlı sınıflar geliştirmek gerekli olsa da, sık kullanılan bir türü işlemek için türe özgü bir sınıf da sağlayarak performansı geliştirebilirsiniz. Örneğin, boole değerlerini ayarlamaya ve almaya özgü bir sınıf sağlamak, Boole değerlerinin kutulama ve kutulamanın kaldırılması maliyetini ortadan kaldırır.