Language/C#

[C#] Value Type & Reference Type

달별선장 2023. 9. 13. 07:25
728x90

Value Type

  • System.ValueType 을 상속
  • string 을 제외한 기본 Type
  • enum
  • struct

특징:

상속될 수 없음

상대적으로 간단한 데이터 값을 저장하는 데 사용 (struct 는 예외적으로 큰 메모리를 차지하기도 한다.)

Call by Value 형태 -> Copy

예) 다른 변수에 값 대입시 기존 변수값을 다른 변수 메모리에 대입

 

Referenct Type

  • System.Array 을 상속
  • string
  • Class 로 생성되어 인스턴스화된 객체 타입

특징:

Class 를 정의하여 만듦 -> 상속 가능

상대적으로 복잡한 데이터와 기능에 사용

Call by Reference 형태 -> Heap 상의 객체에 대한 reference 를 전달

예) 새로운 인스턴스 생성하여 그 인스턴스가 차지하는 메모리 공간(주소값)에 변수값 대입

728x90