Deff_Dev

[Unity/C#] 구조체, 튜플 본문

Unity(유니티)/유니티 공부

[Unity/C#] 구조체, 튜플

Deff_a 2024. 3. 12. 02:11

해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다.

 

구조체

  • 클래스와 유사한 구조를 가지고 있다.
  • 클래스처럼 변수와 메소드를 가질 수 있다.
  • 클래스는 객체를 만들고 추상화 하는데 목적이 있고, 구조체는 데이터를 담기 위한 자료 구조로 사용한다.
  • 편의를 위해 변수를 public으로 선언하는 경우가 많다.
특징 클래스 구조체
키워드 class struct
형식 참조 형식 값 형식
복사 얕은 복사 깊은 복사
인스턴스 생성 new 연산자와 생성자 필요 선언만으로도 사용 가능

 

 

구조체 변수에 new를 붙일 때

  • 기본 생성자를 이용해 구조체 내부 모든 변수의 값을 초기화한다.
  • 구조체 내부 변수에 바로 접근 가능하다.

구조체 변수에 new를 붙이지 않을 때

  • 직접 모든 변수를 초기화 해야한다.
  • 초기화 하지 않고 접근할 시 컴파일 에러가 발생한다.

 

구조체 변수는 사용 후에 메모리에 남아서 가비지 컬렉터가 제거해줄 때까지 기다리는 참조형식과는 달리  값 형식이기 때문에  사용 후에 바로 메모리가 해제된다.

 

따라서 상황에 따라 클래스보다 성능의 이점을 가질 수 있다.


튜플

  • 여러 변수를 담을 수 있는 구조체
  • 일반적인 구조체와 다르게 형식의 이름을 가지지 않는다.
    • 프로그램 전체가 아닌 임시적으로 사용할 복합 데이터 형식을 선언할 때 사용