Pazartesi , 23 Ocak 2017
Anasayfa » C# » C# Object Class

C# Object Class

Object Sınıfı Nedir?

Bu yazımızda .NET Framework sınıflarının temel olarak kalıttığı ilk sınıf olan “object” sınıfını daha yakından inceleyeceğiz.
Tüm sınıfların temel aldığı .NET çatısının en tepesinde bulunan sınıfıdır. Bu tanımdan yola çıkarsak belkide Object sınıfının aslında herşey olduğunu kısaca “Object is Everthing” diyebiliriz. Bir nesnenin başlangıcıdır. Kalıtım (inheritance) yoluyla tüm sınıflarda Object sınıfına ait izler görebilirsiniz.

Object sınıfın sahip olduğu 5 farklı metoda sahiptir.

  • GetType
  • Equals
  • ReferenceEquals
  • ToString
  • GetHashCode

Object sınıfı metodları

Metod Açıklama
GetType Nesnenin veri türünü döndürür.
Equals İki nesne örneği arasında karşılaştırma yapar. Aynı nesneler karşılaştırıldığında true aksi halde false döndürür.
ReferenceEquals İki nesne örneği arasında karşılaştırma yapar. Aynı referans adreslerine sahip nesneler karşılaştırıldığında true aksi halde false döndürür.
ToString Nesneyi string tipine dönüştürür.
GetHashCode Nesnenin hashcode bilgisini verir.

# .ToString()

Object değerini string türüne çevirir.

 

Sonuç ekranı;

untitled-2

# .ToString() Metodunu Override Etmek

.NET içerisinde public virtual string ToString(); olarak tanımlanmış olan .ToString() metodu her virtual metod gibi override edilebilir.

Employee sınıfını aşağıdaki şekilde düzenleyiniz.

Employee.cs

override edilen ToString() metodu böylelikle yeni bir davranışa sahip olmaktadır.

Sonuç

untitled-3

# Equals() Method

Karşılaştırılan iki nesnenin aynı referansta olup olmadığını döndürür.

public virtual bool Equals(object obj);

Örnek:

uygulama kodlarında son olarak emp1 ve emp2 nesneleri birbirine eşitlenmiş durumdadır. Referans türlerinde bu eşitlik sonucu her iki nesne aynı heap bellek bölgesini işaret edecektir. Kısaca nesneler birbirinin aynısıdır. Equals() metodu bu nesneler için “true” değerini döndürür.

Aşağıdaki senaryoda ise “Employee” tipinde emp3 ve emp4 nesneleri her ne kadar aynı durumlara (state) yada aynı özellik değerlerine sahip olsalarda farklı heap bellek bölgelerinde tutulduklarından “equals()” metodu bu iki nesne için false değerini döndürür.

 

# Equals Metodunu Override Etmek

Equals() metodunu biraz farklı yorumlayalım. Söz konusu nesnelerimizin referans eşitliğinden ziyade, nesnelerin eşit olup olmadıklarını değerlerine bakılarak yapılabilmesini sağlayalım. Bu durumda “Employee” sınıfında “Equals()” metodunu override ederek farklı davranışa göre programlayalım.

Sınıfları aşağıdaki gibi düzenleyiniz.

Employee.cs

Program.cs

Sonuç olarak “Equals()” metodu “True” değerini döndürür.

# GetHashCode() Method

Nesnenin referans bilgisini sayısal bilgi olarak verir.

public virtual int GetHashCode();

Farklı iki nesnenin sahip olduğu hashcode aşağıdaki örnekte gösterilmiştir.

1

 

Ancak nesneler birbirine eşitlendiğinde sahip olduğu hashcode birbirine eşit olur. Örneğin;

2

# GetType()

Objenin tür bilgisini verir.

public Type GetType();

Örneklerimizde kullandığımız “emp” nesnelerinin türünü çalışma zamanında öğrenmek istersek;

3

 

Çalışma Örneği:

Örneğimizde iki boyutlu bir noktanın sınıf tasarımını gerçekleştirelim.

Point.cs

Program.cs

Program çıktısı aşağıdaki sonucu verecektir. Sonuçlar açısından programı tekrar inceleyiniz.

4

 

Hakkında Recep ORTAKÖYLÜ

İlginizi Çekebilir

C# Dizi Örnekleri

Nesne Tabanlı Programlama Dersi için Dizi Uygulamaları Bu yazıdaki kolay, orta ve zor olacak şekilde …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Wordpress Tema indir