Sobes.tech
Junior — Middle

Hangi durumlarda referans veri tipleri karşılaştırması yapılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

C#'ta referans tiplerinin karşılaştırılması aşağıdaki durumlarda yapılır:

  • Referansların Karşılaştırılması (ReferenceEquals) — iki değişkenin aynı nesneye mi işaret ettiğini kontrol eder.

  • Equals() Yüksekten Geçirme — nesnelerin içeriğini, adresleri yerine karşılaştırmak için.

  • == ve != Operatörleri — varsayılan olarak referans tipleri için referansları karşılaştırır, ancak içerik karşılaştırması için aşırı yüklenebilir.

Örnek:

class Person {
    public string Name;
    public override bool Equals(object obj) {
        if (obj is Person other) {
            return this.Name == other.Name;
        }
        return false;
    }
    public override int GetHashCode() => Name.GetHashCode();
}

var p1 = new Person { Name = "Alice" };
var p2 = new Person { Name = "Alice" };

bool areSameReference = Object.ReferenceEquals(p1, p2); // false
bool areEqual = p1.Equals(p2); // true

Bu nedenle, referans tiplerinin karşılaştırılması ya nesnelerin aynı olup olmadığını kontrol etmek ya da Equals metodunun aşırı yüklenmiş olup olmadığına bağlı olarak nesnelerin içeriğini karşılaştırmak içindir.