Sobes.tech
Junior — Middle

Agar o'ziga xos taqqoslash usullari amalga oshirilmagan bo'lsa, referens turidagi ob'ektlar qanday taqqoslanadi?

sobes.tech AI

AIdan javob

C# da referans tur uchun o'ziga xos taqqoslash metodlari amalga oshirilmagan bo'lsa (masalan, Equals va GetHashCode metodlari qayta yozilmagan bo'lsa), obyektlarni taqqoslash standart ravishda referens bo'yicha amalga oshiriladi. Bu shuni anglatadiki, ikki obyekt faqatgina ular xotirada bir xil nusxaga ishora qilganda teng hisoblanadi.

Misol:

class Person {}

var p1 = new Person();
var p2 = new Person();

bool areEqual = p1.Equals(p2); // false, chunki ular turli obyektlar
bool areSame = Object.ReferenceEquals(p1, p2); // false

var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true

Shuning uchun, qayta yozilmagan bo'lsa, taqqoslash o'zgaruvchilar bir xil obyektga ishora qilayotganini tekshiradi.