Sobes.tech
Junior — Middle

Дар кадом ҳолатҳо муқоиса кардани намудҳои маълумоти истинодӣ анҷом дода мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар C# муқоисаи навъҳои ишоракунӣ дар ҳолатҳои зерин анҷом дода мешавад:

  • Муқоисаи ишораҳо (ReferenceEquals) — санҷиш мекунад, ки оё ду тағйирёбанда ба як объект дар хотира ишора мекунанд.

  • Барқарор кардани Equals() — барои муқоисаи мазмуни объектҳо, на суроғаҳои онҳо.

  • Операторҳои == ва != — дар асоси пешфарз, барои навъҳои ишоракунӣ, ишораҳоро муқоиса мекунанд, аммо метавонанд барои муқоисаи мазмун барқарор шаванд.

Масалан:

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

Аз ин рӯ, муқоисаи навъҳои ишоракунӣ ё барои санҷидани он ки тағйирёбандаҳо ба як объект ишора мекунанд, ё барои муқоисаи мазмуни объектҳо, агар усули Equals барқарор карда шуда бошад.