Object 클래스
C#에서 모든 데이터 형식은 값 형식
과 참조 형식
으로 나뉜다.
값 형식
은 스택
메모리 영역에 할당되고, 참조 형식
은 힙
메모리 영역에 할당된다.
값 형식
int, float, bool, decimal 등의 자료형부터, struct 키워드로 정의한 구조체 까지 모두 값 형식이다.
참조 형식
class, 배열, interface, delegate 과 같은 데이터 형식은 모두 참조 형식이다.
그리고 이 모든 데이터 형식은 전부 Obejct 클래스를 상속받는다.
Object 클래스의 대표 함수
- Equals : 객체의 동등성을 비교
- GetHashCode : 객체의 해시 코드를 반환
- ToString : 객체를 문자열로 표현하여 반환
- GetType : 객체의 형식을 반환
배열에서 Object 클래스 활용
Object 클래스는 모든 데이터 형식의 기본 클래스 이므로
object 배열
을 사용하면 서로 다른 데이터 형식의 요소를 함께 저장할 수 있다.
유용한 상황
- 다양한 유형의 데이터를 동일한 컬렉션을 관리할 때
- 다른 클래스나 구조체로부터 파생된 객체를 동일한 배열에 저장할 때
- 배열의 요소를 반복하면서 각 요소의 실제 데이터 형식에 따라 다른 작업을 수행할 때
단점
object 배열을 사용하면 배열에서 데이터를 검색하거나 사용할 때 명시적인 형 변환이 필요
하기 떄문에
실행 시간에 형식 검사 및 형식 캐스팅을 수행하도록 코드를 작성해야 하며
약간의 성능 저하
도 발생한다.