본문 바로가기
반응형

C#52

[c#] Boxing 과 Unboxing Boxing이란? 값 형식을 참조 형식으로 변환하는 것이다. 값 형식의 스택에 있는 데이터가 참조형식의 힙으로 복사된다. Boxing할 때는 새로운 개체가 만들어져야 하며, 이 작업은 할당 작업보다 최대 20배의 시간이 소모된다. ex) 값 형식 int가 참조 형식 string 으로 변환 되는 과정에서 Boxing이 발생한다. int a = 10; string str = a; Unboxing이란? 참조 형식을 값 형식으로 변환하는 것이다. 참조 형식의 힙에 있는 데이터가 스택으로 복사된다. Unboxing은 Boxing한 객체에서만 가능한다. Unboxing할 때는 캐스팅 과정에 할당 작업보다 4배의 시간이 걸릴 수 있다. ex) 참조 형식의 string이 값 형식의 int로 변환 되는 과정에서 Unbo.. 2021. 8. 20.
[c#] 코루틴과 Invoke 코루틴(Coroutine)과 인보크(Invoke)의 차이점에 대해서 알아보자 1. GameObject의 상태 코루틴은 GameObject가 False가 되면 작동을 멈춰버린다. Invoke는 False가 되어도 작동한다. 2. 매개변수 코루틴은 매개변수를 가질 수 있다. Invoke는 매개변수를 가질 수 없다. 2021. 8. 9.
[c#] 스레드와 코루틴 스레드(Thread)와 코루틴(Coroutine)의 공통점과 차이점에 대해 알아보자 공통점 비동기 작업을 위해 사용된다. - 비동기 작업이란? 어떠한 작업을 진행하는중에 또다른 작업을 같이 진행하는 방식 차이점 스레드 : 여러개의 스레드를 사용하여 "병렬"적으로 작업을 진행한다. 코루틴 : 병렬적으로 작동하는것이 아니라 여러개의 작업을 작게 쪼개서 작업을 진행한다. 2021. 8. 9.
[c#] Ramdom 난수 유니티 도큐먼트를 공부하던 와중 "랜덤 게임플레이 요소 추가" 부분에서 나온 Ramdom.value 가 뭔지 이해가 되지 않아서 서치 한 내용에 대해 정리 하려고 한다. 흔히 Ramdom.Range() 함수를 많이 사용하고 Random.value는 거의 사용하지 않아서 몰랐던 내용이다. Random.value는 0~1 사이의 랜덤값으로 한단어로 말하자면 "난수"이다. bool B; if(Random.value > 0.5) B = true; else B = false; // 확률이 반반인 bool 변수 이런식으로 사용할 수 있다. Random.Range 에 대해서도 설명하자면 int 형으로 사용하면 최대값은 포함이 되지 않지만 float 형으로 사용하면 최대값이 포함이 된다. int ran_int = Ra.. 2021. 7. 26.
반응형