이것은 Java 및 C# 질문입니다. Object Identity (==)는 두 객체가 같은 위치를 참조하는지 여부를 테스트하고, 두 개의 다른 객체 (동일하지 않은 객체)가 동일한 값을 갖고 있는지 테스트합니다. 그러나 문자열 객체의 경우 Object Identity 와 Object Equality는 동일합니다. 예컨대 두 부울 식 아래의 경우 이 문은 왜 그렇게이다개체 ID 및 개체 평등 및 문자열 클래스 예외에 대한 질문
string a="123";
string b="123";
if(a==b)
if(a.Equals(b))
true를 돌려주는 경우에? 이 디자인 결정의 근거는 무엇입니까?
을 당신이 Object.equals()와 String.equals (의 코드를 읽어 제안) 그리고 이것이 정확하지 않다는 것을 알 수 있습니다. –
C#에서 "=="은 IDENTITY 테스트로 간주되지 않습니다. 일반적으로 클래스의 EQUALS 메소드가하는 일을 수행하기 위해 구현됩니다. "ReferenceEquals (a, b)"는 .Net의 IDENTITY 테스트입니다. – ToolmakerSteve