CodeBlanks Logo Icon CodeBlanks

Object sınıfı

C# kursu · Orta seviye · Ders 17/116

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

  1. Object metodunu amacına eşle

    ToString
    Metin karşılığı
    Equals
    Eşitlik kontrolü
    GetHashCode
    Hash kodu
    GetType
    Tür bilgisi
  2. 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.

  3. ToString override tamamla

    public override string ____() { return Name; }
    Cevabı göster
    public override string ToString() { return Name; }

Orta seviye bölümündeki tüm dersler