2010-04-13 3 views
26

은 Z, A는 X, Y와 같은 일부 구성원과 클래스 지니가 객체에서 정의 된 "같음"기능을 상속되도록Equals Method의 기본 동작은 무엇입니까?

Class A { 
    int x; 
    int y; 
    String z; 
    ... 
} 

A는 목적이다. 이 기능의 기본 동작은 무엇입니까? 회원 평등 여부를 확인 하는가 아니면 참조 평등을 점검 하는가? 당신이 무시하지 않는 한이 참조를 확인

답변

42

같습니다. 참조 동등성 은 동일한 객체를 참조한 인 객체 참조를 의미합니다. 비트 평등이란 비교되는 의 객체가 동일한 이진수 을 가짐을 의미합니다.

http://msdn.microsoft.com/en-us/library/bsc2ak47.aspx

+3

상황이 실제로 값 유형에 대한 더 복잡합니다 : 그것은가는 요리 biwise 평등 비교 아니다. 자세한 내용은이 질문을 참조하십시오. http://stackoverflow.com/q/8315656/129073 – Gebb

+0

문자열은 특별합니다. string.equals는 비트와 동등하지만 string은 참조 유형입니다. –

+4

@WillYu 비트 단위의 동등하지 않습니다. 문자가 같은지 여부를 테스트합니다. 비트 동등성은 모든 .NET 메타 데이터 (예 : 문자열의 유휴 여부)가 동일 함을 의미합니다. 또한 특별하지도 않습니다 (이 점에서), Equals를 재정의하고 (등호) 연산자를 오버로드합니다. 기본 구현은 여전히 ​​참조 평등입니다. – Aidiakapi

3

는 같음 의 기본 구현은 참조 유형에 대한 참조 평등, 값 유형에 대한 비트 평등 을 지원

관련 문제