[C# 객체지향] 상속_System.Object

eunjin lee·2022년 6월 18일
0

C# 9.0 프로그래밍

목록 보기
4/50
  • 모든 클래스는 System.Object를 상속받는다.

  • 모든 형식의 부모이므로, 모든 형식은 object로 변환 가능하다.

    object
    ← System.ValueType(값 형식) ← bool, int, double, char...
    ← System.ValueType(값 형식) ← enum, struct...
    ← string
    ← System.Array
    ← class로 정의하는 타입들...



1. GetType()

  • ✍ 샘플 코드
   class Program
    {
        static void Main(string[] args)
        {
            Cat c = new Cat();
            Type t = c.GetType();

            Console.WriteLine(t.IsValueType);
            Console.WriteLine(t.IsArray);
            Console.WriteLine(t.IsEnum);
            Console.WriteLine(t.IsClass);
            Console.WriteLine(t.GetType());
            Console.WriteLine(t.FullName);
            Console.WriteLine();
         }
    }
  • ✅ 결과
	False
	False
	False
	True
	System.RuntimeType
	Pjt.Cat


2. Equals()

  • 참조 형식에 대해서는 주소값(할당된 메모리의 위치)을 비교하여 true/flase를 반환한다.
  • 재정의하여 객체가 갖고 있는 특정 필드의 값이 동일하면 true를 반환하도록 할 수도 있다.


3. GetHashCode()

  • 특정 인스턴스를 고유하게 식별할 수 있는 4바이트 int 값을 반환한다.
  • Equals() 재정의 시 GetHashCode()도 재정의해야 한다.
  • Equals()가 false라면 GetHashCode()의 값도 다르게 나와야 하지만, GetHashCode()의 값이 같다고 해서 Equals()가 true인 것은 아니다. (해시 충돌)

0개의 댓글