Sobes.tech
Junior

C#'ta dizelerin karşılaştırılması nasıl yapılır? Dizelerin referansları mı yoksa değerleri mi karşılaştırılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

C#'ta dizeler referans tiplerdir, ancak varsayılan karşılaştırma değere göre yapılır. Eşitlik operatörü (==) ve Equals yöntemi, dizelerin içeriğini karşılaştırır, bellekteki nesne referanslarını değil.

Dizeleri referans olarak karşılaştırmak, ki bu oldukça nadirdir, statik ReferenceEquals yöntemi kullanılabilir.

İşte örnekler:

// Değere göre karşılaştırma (varsayılan)
string str1 = "hello";
string str2 = "hello";
bool areEqualByValue = (str1 == str2); // true
bool areEqualByEquals = str1.Equals(str2); // true

// Referansa göre karşılaştırma
string strA = new string(new char[] { 'w', 'o', 'r', 'l', 'd' });
string strB = new string(new char[] { 'w', 'o', 'r', 'l', 'd' });
bool areEqualByReference = object.ReferenceEquals(strA, strB); // false, farklı nesneler

string strC = strA;
bool areEqualByReference2 = object.ReferenceEquals(strA, strC); // true, aynı nesneye referans

Bu nedenle, çoğu senaryoda C#'ta dizelerin karşılaştırılması değere göredir.