2011-01-19 31 views
15

Olası Çoğalt:Dize karşılaştırması: operatör ==() vs Eşittir()

: string yaklaşım iyidir karşılaştırma, (ve güvenli) için
C#: Are string.Equals() and == operator really same?

string s1="Sarfaraz"; 
string s2="Nawaz"; 

bool result1 = (s1==s2) ;//approach 1 
bool result2 = s1.Equals(s2) ;//approach 2 

Ya da her ikisi de kaputun altında aynı mı?

+1

"Köpeğin" ve "Köpeğin" aynı kelimeyi kullanacağını düşünürseniz, String.Equals (S1, S2, StringComparison.CurrentCultureIgnoreCase) kullanarak ilk yaklaşımınızda dizeyi değiştirebilirken kullanışlı ve zarif olabilir. –

+0

@Ramhound: çok güzel nokta! – Nawaz

+0

tek uyarı, dizeler boşsa bir istisna atarsınız. Tabii ki, eğer değerlerini karşılaştırıyorsanız, bir değer beklersiniz. –

cevap

14

Equals()'u beğeniyorum, çünkü kullanılabilir StringComparison seçeneği çok kullanışlıdır.

== ve != operatör değerini dayanmaktadır, bu nedenle String referans türü olduğu halde, kullanımı güvenlidir.

+7

Ayrıca 's1' null ise, sonuçların farklılık göstereceğinden bahsetmeye değer. – porges

İlgili konular