string.Equals()
과 ==
연산자는 실제로 서로 바꿔서 사용할 수 있나요?
string.Equals()
및 ==
연산자는 모두 객체가 동일한지 비교하는 데 사용되지만 동작은 다릅니다.
예를 들어 s
변수는 "Category"를 포함하는 문자열이고 tvi.Header
는 "Category"도 포함하는 WPF TreeViewItem의 제목입니다. 그러나 s == tvi.Header
은 false로 평가되고 s.Equals(tvi.Header)
은 true로 평가됩니다.
이러한 차이점은 두 가지 주요 차이점에서 비롯됩니다.
Equals
은 다형성입니다. 즉, 구현은 객체의 런타임 유형에 따라 달라집니다. 이 경우 문자열 구현을 사용하여 두 문자열의 값을 비교합니다. 반면 ==
은 정적으로 유형이 지정되며 비교되는 개체의 컴파일 시간 유형(이 경우 String 및 TreeViewItem.Header)을 기반으로 적절한 구현을 사용합니다. 이러한 유형이 다르기 때문에 ==
은 참조 비교를 수행하고 false를 반환합니다. Equals
을 호출하면 NullReferenceException 예외가 발생하고 ==
두 피연산자가 모두 null이면 결과는 true입니다. 이 문제를 방지하려면 잠재적으로 null 개체를 처리할 때 object.Equals
대신 Equals
을 사용하세요. 요약하자면 string.Equals()
과 ==
연산자는 비슷해 보이지만 유형과 null 값 처리에 차이가 있습니다. 정확한 값 비교를 위해서는 문자열 값을 비교할 때 string.Equals()
를 사용해야 하고, ==
연산자를 사용할 때는 null 값에 주의해야 합니다.
위 내용은 문자열을 비교할 때: `string.Equals()`와 `==`는 실제로 상호 교환 가능합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!