2011-01-19 70 views
15

thể trùng lặp:
C#: Are string.Equals() and == operator really same?Chuỗi so sánh: toán tử ==() vs Equals()

Để so sánh chuỗi, mà cách tiếp cận tốt hơn (và an toàn):

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

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

Hoặc cả hai đều giống nhau dưới mui xe?

+1

Nó phụ thuộc nếu bạn coi "chó" và "Chó" là cùng một từ, trong khi bạn có thể thao tác chuỗi trong phương pháp đầu tiên của mình bằng String.Equals (S1, S2, StringComparison.CurrentCultureIgnoreCase) có thể tiện dụng và thanh lịch. –

+0

@Ramhound: điểm rất đẹp! – Nawaz

+0

một cảnh báo là nếu các chuỗi là null, bạn sẽ ném một ngoại lệ. Tất nhiên họ nếu bạn đang so sánh giá trị của họ thì bạn mong đợi một giá trị. –

Trả lời

14

Tôi thích Equals() vì tùy chọn có sẵn StringComparison rất hữu ích.

Các ==!= khai thác dựa trên giá trị, vì vậy họ được an toàn để sử dụng, mặc dù String là một loại tài liệu tham khảo.

+7

Cũng đáng nói nếu 's1' là' null' kết quả sẽ khác nhau. – porges

Các vấn đề liên quan