티스토리 뷰
(C#) 비전공자도 이해하는 C#의 자료형식의 구분 방법_reference type, value type, built-in type, cusotom type
KS짱짱맨 2022. 7. 15. 17:43[이 글을 쓴 목적]
난 Unity로 게임을 만든다. 그리고 Unity는 C#이라는 언어를 기본적으로 사용한다.
C#에서 사용되는 기본적인 자료형식을 이해하면
스크립트가 어떤 말을 하고 있는것인지 이해하는데 도움이 될거라고 생각했다.
무엇보다 나와같은 비전공자들이 실질적으로 코딩을 하는데 있어서 불편함이 줄어들면 좋겠다
이번 포스트에서 배울 수 있는 것들
- 참조형식(reference type)과 값형식(value type) 의 의미와 차이 이해
- 기본제공 형식(built-in type) 과 사용자 지정형식(custom type)의 의미 이해
- 기본제공 형식(built-in type)의 종류와 의미
C#문서에 나와있는 형식 세션의 목차는 다음과 같으며 이것들을 따라서 하나 하나 배워볼 예정이다.
https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/types/
우선 C#이라는 언어에서 다루는 자료형식중 참조형식과 값형식에 대해서 알아보겠다.
일단 자료형식이란 자료의 종류 정도라고 생각하면 좋을 것 같다.
우리가 요리를 할때 필요한 원재료와 같은 느낌? 이다.
원재료의 특성을 알아두면 요리를 잘 할 수 있는 것처럼
자료의 종류와 특성을 알아두면, 무엇끼리는 호환이 안되는지 그리고 내가 구현하려는 기능에 적합한 자료형은 무엇인지 이해할 수 있다.
참조형식(Reference Type) VS 값 형식 (Value Type)
참조형식과 값형식을 간단히 이해해보기 위해
어떤 사람들이 블로그에서 글을 쓸 때 다른사람이 올린 글의 내용을 자신의 블로그에 인용하고 싶다고 하자
이때, 참조형식은 자신의 글에에 원본글의 링크를 걸어놓는 것과 같다. 따라서 만약 원본글의 내용이 바뀌면, 링크를 타고 들어가서 보게되는 내용이 바뀌게 된다.
즉, 원본글의 내용이 바뀌면 → 원본글의 링크를 가진 모든 글이 영향을 받게 된다
반면 값형식은 블로그를 만들때 다른사람의 글을 복사해오는 것과 같다. 따라서 원본글의 내용이 바뀌더라도 내 블로그에 복사된 글의 내용은 복사할 당시의 내용에서 변하지 않는다.
즉, 원본글의 내용이 바뀌어도 → 복사된 글에는 영향을 줄 수 없다
구분 | 참조형식(Reference Type) | 값 형식 (Value Type) |
설명 | 블로그를 만들때, 링크를 걸어서 다른사람이 쓴 글의 내용을 가져오는 방법 |
블로그를 만들때, 직접 타이핑을 하거나 글의 내용을 복사해서 다른 사람이 쓴 글의 내용을 가져오는 방법 |
종류 | class, interface, object, string 등 | int, float, bool, char 등 |
특징 | 원본글의 내용이 바뀌면 → 원본글의 링크를 가진 모든 글이 영향을 받게 됨 | 원본글의 내용이 바뀌어도 → 복사된 글에는 영향을 줄 수 없다 |
기본제공 형식(Built-in Type) VS 사용자지정 형식 (Custom Type)
기본 제공 형식(Built-in Type)이란 C#언어를 사용할 때 기본적으로 사용할 수 있는 자료형식을 뜻한다.
사용자지정 형식(Custom Type)이란 사용자가 직접 만들 수 있는 자료형식을 뜻한다.
구분 | 기본제공 형식(Built-in Type) | 사용자지정 형식(Custom Type) |
설명 | C#언어에 기본적으로 탑재되어 있는 자료형식 | 사용자가 직접 만들어서 사용할 수 있는 자료형식 |
종류 | int, float, stirng, object ... | class, interface, enum, record ... |
기본제공 형식(Built-in Type)의 종류
아래 링크는 기본제공형식에 대한 링크이다. 따라서 참조 형식
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/built-in-types
아래 표는 내가 직접 원본을 보고 적은 것이므로 값형식이다.
형식 | 구분 | 키워드 | 설명 |
값형식 | 논리연산 | bool | True, False 값을 나타냄 |
문자 | char | 문자 한개 ex) A, 다, ※ ... | |
정수 | sbyte | -128~127 (부호O, 8비트) | |
byte | 0~255 (부호X, 8비트) | ||
short | –32,768 ~ 32,767 (부호O, 16비트) | ||
ushort | 0 ~ 65,535 (부호X, 16비트) | ||
int | -2,147,483,648 ~ +2,147,483,648 (부호O, 32비트) | ||
uint | 0 ~ 4,294,967,295 (부호X, 32비트) | ||
long | –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (부호O, 64비트) | ||
uling | 0 ~ 18,446,744,073,709,551,615 (부호X, 64비트) | ||
unint | 플랫폼에 따라 달라짐 => 부호O 32비트 or 64비트 | ||
nuint | 플랫폼에 따라 달라짐 => 부호X 32비트 or 64비트 | ||
실수 | float | 6~9개 자릿수의 실수 (4바이트) | |
double | 15~17개 자릿수의 실수 (8바이트) | ||
demical | 28~29개 자릿수의 실수 (16바이트) | ||
참조형식 | 객체 | object | 모든 자료 형식을 담을 수 있음 |
문자열 | string | char로 이루어진 집합체 |
끝.
'IT > UNITY(C#)' 카테고리의 다른 글
(C#) UNITY_다른 스크립트에 존재하는 변수, 함수(메서드) 접근하기 (0) | 2022.07.18 |
---|---|
(C#) UNITY_data저장하고 불러오는 3가지 방법 (0) | 2022.07.18 |
(C#) 비전공자 Unity_너무 당연해서 넘어갔지만 궁금한 녀석 : Monobehavior (0) | 2022.07.15 |
(C#) UNITY_게임 오브젝트 옮기기(드래그앤드랍) (0) | 2022.07.14 |
(C#) UNITY_비전공자가 게임 만들기_이동하기, 드래그(drag&drop), 클릭한곳으로 이동 (0) | 2022.07.14 |
- Total
- Today
- Yesterday
- PYTHON
- Unity
- 일자별
- 시스템투자
- 스타트업
- 파이썬
- 경영학
- 유니티
- 주식투자
- C#
- 마케팅
- 크롤링
- beautifulsoup
- 비전공자
- json
- 머신러닝
- 프로그래머스
- It
- ET5X
- 가격데이터
- 심리학
- 알고리즘
- 강화학습
- Anet
- 주식
- 터틀트레이딩
- requests
- 사진크롤링
- IT기초
- 랜덤맵
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |