Junior — Middle
Hansı hallarda referans məlumat növlərinin müqayisəsi aparılır?
sobes.tech Süni İntellekt
AI-dan cavab
C# dilində referans tiplərinin müqayisəsi aşağıdakı hallarda həyata keçirilir:
-
ReferenceEquals ilə müqayisə — iki dəyişənin eyni yaddaş obyektinə istinad etdiyini yoxlayır.
-
Equals() metodunun üst-üstə yazılması — obyektlərin məzmununu, ünvanlarını yox, müqayisə etmək üçün.
-
== və != operatorları — standart olaraq, referans tipləri üçün referansları müqayisə edir, lakin məzmun üçün yüklənə bilər.
Nümunə:
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
Beləliklə, referans tiplərinin müqayisəsi ya obyektlərin eyni olub-olmadığını yoxlamaq üçün, ya da Equals metodunun üst-üstə yazılmış olub-olmadığına görə obyektlərin məzmununu müqayisə etmək üçün həyata keçirilir.