[C#] 15. struct와 class

Connected Brain·2025년 4월 25일

면접 질문 대비

목록 보기
15/60

struct와 class의 차이점에 대해 설명해주세요.

한 줄 요약

struct : 클래스와 유사하나 값 형식이므로 스택 영역에 할당. 인터페이스 구현은 가능하지만 상속 및 기본 생성자를 통한 생성 불가. 값 형식이므로 크기가 커질 경우 복사 시 여러 데이터를 새로 생성하므로 부적합
클래스 : 참조 형식이며 new 키워드를 통해 객체를 생성. 상속, 인터페이스 구현, 기본생성자를 통한 생성 모두 가능. 힙에 할당되므로 GC에 의한 관리 필요

struct

  • 값 형식을 가지며, 그렇기에 스택 영역에 할당되는 특징을 가짐
  • 클래스에서는 가능한 상속 및 기본 생성자를 통한 생성이 불가(인터페이스는 활용 가능)
  • 값 형식이므로 값을 전달할 때 해당 값을 복사하여 전달하므로, 이전 변수의 참조하지 않아 변화가 반영되지 않음
  • 작은 크기의 데이터를 전달하는 데에는 유리하지만, 데이터의 크기가 커질 경우 값 형식으로 전달하므로 여러 개의 크기가 큰 데이터를 복사하므로 적합하지 않음

class

  • 참조 형식을 가지며, 힙 영역에 new 키워드를 통해 객체를 생성해 할당되는 특징을 가짐
  • 상속, 인터페이스 구현, 기본 생성자를 통한 생성 모두 가능
  • 참조 형식이므로 다른 변수에 저장될 때 원본을 참조하는 방식으로 전달
  • 힙에 할당 되므로 가비지 콜렉터에 의한 관리가 필요

0개의 댓글