프로그래밍언어/C#
C#)인스턴스 동일체크Object.ReferenceEquals(Object, Object) Method
HJH0825
2019. 10. 2. 00:33
같은 클래스로 인스턴스를 new로 생성하게 되면
1번을 제외하고 2~4번은 false
참조형 변수의 주소값을 비교하는 object.ReferenceEquals
즉, 관리 힙에 할당된 객체의 참조 주소 값을 비교해 '같음 여부'를 판단하기 때문에, object.ReferenceEquals '값 형식'의 인스턴스에 사용해서는 안됨
값형식을 넣으면 오류는 안나지만 false를 반환
object.ReferenceEquals의 값을 넣게되면 매개변수타입이 object형식이라 박싱과정이 거친다. 그러면 힙메모리에 값이 할당되게 된다. 결국 스택에 있는 서로다른 주소값이 생기기 떄문에 항상 false를 반환하게된다.