Object sınıfı
Tüm sınıfların atası Object ve ToString, Equals, GetHashCode'u öğrenirsin.
Object kök sınıf
C#'ta tüm sınıflar dolaylı olarak object (System.Object) sınıfından miras alır. Bir sınıfa : object yazmazsın; derleyici bunu otomatik ekler. Bu yüzden her nesne ToString, Equals ve GetHashCode metotlarına sahiptir.
object referansı herhangi bir nesneyi tutabilir: object o = new Book(); geçerlidir. Kutulama (boxing) ile değer türlerini de object'e atayabilirsin: object box = 42;.
ToString override
Varsayılan ToString, sınıf adını döndürür; bu çoğu zaman yararsızdır. Kendi sınıfında override ile anlamlı bir metin üretirsin: public override string ToString() { return Name + " - " + Age; }.
Böylece Console.WriteLine(person) yazdığında otomatik ToString çağrılır ve anlamlı çıktı alırsın. Hata ayıklama ve günlükleme için en sık override edilen metot budur. Daima anlamlı ve kısa bir temsil döndür.
Uygulama Person sınıfında ToString override
Bir Person sınıfı tanımla ve içine public string Name { get; set; } ile public int Age { get; set; } özelliklerini ekle. Ardından public override string ToString() metodu ekle ve gövdede return Name + " - " + Age; yaz. Main içinde new Person { Name = "Ayşe", Age = 30 } ile örnek oluştur ve Console.WriteLine(person) ile yazdır.
Örnek çözümü göster
Person'a Name ve Age özellikleri ekle. ToString override ile return Name + " - " + Age; yaz. Main içine Person p = new Person { Name = "Ayşe", Age = 30 }; Console.WriteLine(p); yaz.
Örnek çözüm:
using System;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return Name + " - " + Age;
}
}
class Program
{
static void Main()
{
Person p = new Person { Name = "Ayşe", Age = 30 };
Console.WriteLine(p);
}
}
Kendini test et
-
Object metodunu amacına eşle
- ToString
- Metin karşılığı
- Equals
- Eşitlik kontrolü
- GetHashCode
- Hash kodu
- GetType
- Tür bilgisi
-
Her sınıf hangi sınıftan miras alır?
- object
- string
- System
- void
Cevabı göster
object — Doğru. Tüm sınıflar object'ten miras alır.
-
ToString override tamamla
public override string ____() { return Name; }Cevabı göster
public override string ToString() { return Name; }