C# 강좌 Day-05 (object, boxing, 값형식, 참조형식)
Unity3D/C# 2021. 8. 14. 23:32object 형식
C#의 모든 타입은 object 형식이다.
즉, 모든 값은 object형식의 변수에 할당 가능.
object형식 변수 선언및 할당
using System;
namespace HelloWorld
{
class Program
{
enum eState
{
Idle = 100, Run = 200, Attack, Die
}
static void Main(string[] args)
{
object obj = 123;
object obj2 = eState.Idle;
object obj3 = "홍길동";
object obj4 = '홍';
object obj5 = 12.32f;
}
}
}
박싱(boxing)
데이터형을 최상위 object형으로 변환 하여 힙 메모리에 저장
언박싱(unboxing)
힙에 저장된 형식을의 값을 다시 원래 형식으로 변환
object obj = 123; //박싱
int damage = (int)obj; //언박싱
값형식과 참조형식
값 형식은 스택 메모리에 저장
int, float, bool, char, enum, struct
메모리에 값이 직접 저장됨
메서드 호출이 끝나면 값은 제거됨
참조 형식은 힙 메모리에 저장
string, class, interface, delegate, array
스택메모리에 주소값이 닮기고 값은 힙에 저장
참조 하지 않는경우 GC에 의해 제거됨
'Unity3D > C#' 카테고리의 다른 글
C# 강좌 Day-07 (입력받기) (0) | 2021.08.15 |
---|---|
C# 강좌 Day-06 (맴버변수, 지역변수, static, var) (0) | 2021.08.14 |
C# 강좌 Day-04 (enum) (0) | 2021.08.14 |
C# 강좌 Day-03 (bool, 형변환) (0) | 2021.08.14 |
C# 강좌 Day-02 (변수와 값) (0) | 2021.08.14 |