같은 클래스로 인스턴스를 new로 생성하게 되면
1번을 제외하고 2~4번은 false
참조형 변수의 주소값을 비교하는 object.ReferenceEquals
즉, 관리 힙에 할당된 객체의 참조 주소 값을 비교해 '같음 여부'를 판단하기 때문에, object.ReferenceEquals '값 형식'의 인스턴스에 사용해서는 안됨
값형식을 넣으면 오류는 안나지만 false를 반환
object.ReferenceEquals의 값을 넣게되면 매개변수타입이 object형식이라 박싱과정이 거친다. 그러면 힙메모리에 값이 할당되게 된다. 결국 스택에 있는 서로다른 주소값이 생기기 떄문에 항상 false를 반환하게된다.
'프로그래밍언어 > C#' 카테고리의 다른 글
20200210[C#]중접된 using 지시자,형식 이름공간의 별칭,global,식 본문 메서드 (0) | 2020.02.10 |
---|---|
C#) CLR(Common Language Runtime)이란? (0) | 2020.02.04 |
C#) 키워드 간단 정리 (0) | 2019.09.24 |
C#) List / LinkedList (List.AddRange) (0) | 2019.06.05 |
C#) struct와 class의 차이점 구조체와 클래스 (0) | 2019.03.01 |