C#

C#/기본기

[C#] 박싱과 언박싱

object 형식 • 모든 데이터 형식(프로그래머들이 만드는 데이터 형식마저도)이 자동으로 object 형식으로부터 상속받음 • 즉 object형식은 모든 데이터 형식의 부모 • 따라서 컴파일러는 어떤 형식의 데이터라도 object에 담아 처리 가능 • obect형식은 참조형식 ex) object a = 123; object b = "hello" 모두 가능 박싱과 언박싱 obect형식은 참조형식이기 때문에 힙에 데이터를 할당, int 나 double은 값 형식이기 때문에 스택에 할당 그럼 값 형식 데이터를 object형식에 담으면 어디에 할당될까 스택? 힙? object가 값 형식의 데이터를 힙에 할당하기 위해 "박싱 기능" 제공 박싱 : 값 형식을 object 형식에 담아 힙에 올리기 object a ..

C#/기본기

[C#] 값 형식과 참조 형식 - stack과 heap

object 데이터 타입의 박싱과 언박싱, 클래스(참조 형식), ref키워드, struct의 깊은복사 등 앞으로 나올 여러 C#문법들이 값과 참조, 스택과 힙의 차이에 기반해 설명되기 때문에 이 차이를 확실히 알아야 할 필요가 있습니다. 데이터 형식은 값 형식과 참조형식으로 분류 할 수 있습니다. stack 과 heap은 C#으로 작성한 프로그램이 사용하는 두가지 메모리 영역입니다. 결론을 간단히 설명하자면 , • 값 형식의 변수는 값 데이터를 직접적으로 스택(stack) 메모리에 저장합니다. • 참조 형식의 변수는 힙과 스택을 함께 이용하는데, 힙 영역에는 데이터를 저장하고 스택 영역에는 데이터가 저장된 힙 메모리의 주소를 저장합니다. 즉 값 형식과 참조 형식은 데이터를 스택에 넣느냐, 힙에 넣느냐가 ..

C#/기본기

[C#] C#의 구조

C++ 와 C#의 차이 C#의 구조와 실행방식을 살펴보기 전에, C++과 C#의 차이를 알아보겠습니다. C++ C# 메모리 관리를 프로그래머가 직접 • 메모리 할당 • 데이터 R/W (읽고 쓰기) • 해제 (방 빼주기) 메모리 할당과 데이터 R/W는 직접, 해제는 가비지 콜렉터가 해준다 플랫폼 이식도 프로그래머의 책임 CLR이 직접. 우리는 편하게 코드 작성 (아래에 CLR과 함께 더 자세히 설명합니다) 일관성 없는 라이브러리 일관된 클래스 라이브러리 C# 컴파일러 C# 컴파일러 : C# 소스코드를 분석해서 그 결과를 .NET용 IL코드(중간언어)로 생성하는 프로그램 코드언어 → (컴파일러)→ IL코드→ CLR이 읽음 → 기계어 → 컴퓨터가 읽음 표에서 C#은 C++과 다르게 CLR을 가지고 있고, C#..

파워지훈
'C#' 태그의 글 목록 (4 Page)