Deff_Dev
[Unity/C#] 구조체, 튜플 본문
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다.
구조체
- 클래스와 유사한 구조를 가지고 있다.
- 클래스처럼 변수와 메소드를 가질 수 있다.
- 클래스는 객체를 만들고 추상화 하는데 목적이 있고, 구조체는 데이터를 담기 위한 자료 구조로 사용한다.
- 편의를 위해 변수를 public으로 선언하는 경우가 많다.
특징 | 클래스 | 구조체 |
키워드 | class | struct |
형식 | 참조 형식 | 값 형식 |
복사 | 얕은 복사 | 깊은 복사 |
인스턴스 생성 | new 연산자와 생성자 필요 | 선언만으로도 사용 가능 |
구조체 변수에 new를 붙일 때
- 기본 생성자를 이용해 구조체 내부 모든 변수의 값을 초기화한다.
- 구조체 내부 변수에 바로 접근 가능하다.
구조체 변수에 new를 붙이지 않을 때
- 직접 모든 변수를 초기화 해야한다.
- 초기화 하지 않고 접근할 시 컴파일 에러가 발생한다.
구조체 변수는 사용 후에 메모리에 남아서 가비지 컬렉터가 제거해줄 때까지 기다리는 참조형식과는 달리 값 형식이기 때문에 사용 후에 바로 메모리가 해제된다.
따라서 상황에 따라 클래스보다 성능의 이점을 가질 수 있다.
튜플
- 여러 변수를 담을 수 있는 구조체
- 일반적인 구조체와 다르게 형식의 이름을 가지지 않는다.
- 프로그램 전체가 아닌 임시적으로 사용할 복합 데이터 형식을 선언할 때 사용
'Unity(유니티) > 유니티 공부' 카테고리의 다른 글
[Unity/C#] 이름 공간 (namespace) (0) | 2024.03.12 |
---|---|
[Unity/C#] static (정적 메소드, 정적 변수, 정적 클래스, 확장 메소드) (0) | 2024.03.12 |
[Unity/C#] 중첩 클래스, 분할 클래스 (0) | 2024.03.12 |
[Unity/C#] 메소드 숨기기, 오버라이딩 봉인 (0) | 2024.03.12 |
[Unity/C#] 추상클래스, 인터페이스 (0) | 2024.03.11 |