낑깡의 게임 프로그래밍 도전기

C# 데이터 형식, Value Type, Reference Type 본문

C#

C# 데이터 형식, Value Type, Reference Type

낑깡겜플밍 2025. 7. 7. 10:12
반응형

데이터 형식

1. 데이터 형식

string은 배열이다. 그래서 foreach도 가능하다.

int 4byt

lone 8byt

float 4byt

duble 8byt

*float는 정밀도가 낮다, 정밀도를 요한다면 duble(특히 확률), 길어질 것 같으면 long 형식을 쓴다. 처음에 int를 쓰다가 long을 바꾸기 쉽지 않아서 잘 선택해야한다.
*서버로 데이터를 보낼 때 duble로도 잘 안씀. 가공할 때 문제가 될 수있기 때문.
*소수점을 계산을 없애기위해 만약 100.34가 나왔다면 100을 곱해서 사용하자 약속하기도함

 

2. 열거형식

string은 오타 등으로 인해 에러 발생 가능성이 높다.

그래서 실무에서는 enum을 많이 쓰고 숫자(인덱스)를 직접 정해준다.

enum은 시스템 어디에든 쓸 수 있다. 그래서 따로 빼서 관리하기도 한다.

*클린코드를 한 땐 한번된 공간에서만 쓸 수 있게 클래스 안에 선언하기도 함.

 

3. 형변환

int money = 1000;

string letter = "안녕, 나야";

double dlubleMoney = 20.0;

float floatMoney = 10.0f;

 

float를 duble로

doubleMoney = floatMoney;

* 데이터 범위가 double이 더 커서 자동형변환 된다.

 

double을 float로

floatMoney = (float)doublieMoney; 강제 현변환

 

int를 string으로

letter = money.ToString();

letter = money + ""; 빈 문자열을 붙이면 자동형변환이 된다. letter가 더 크다고 인식되어서 가능.

 

string을 int로

money = int.Parse(letter); 이미 문자를 초기화 해놨다면 에러가 발생할 수 있음

int.TryParse(letter, out money); 바꿀 수 없다면 int의 초기값(0)이 들어가게 된다. 좀 더 안전.

 

 

Value Type, Reference Type

값타입은 primitive 타입이라고도 부른다.

가비지 컬렉션을 수동으로 날릴 수 있다. 그래서 모아두었다가 씬전환 시점에서 날리기도 한다.

string letter = "안녕"; reference 타입이지만 겉은로는 값타입 처럼 보임

반응형