상수 : 변하지 않는 값
C#이 사용하는 메모리 형식
1.스택(Stack)
- 데이터를 쌓아 올리는 구조(책처럼)
- 나중에 쌓인 데이터를 먼저 제거 처음 쌓인 데이터를 나중에 제거(후입선출)
- 쌓인 순서의 역순으로 필요없는 데이터를 자동제거
2.힙(Heap)
- 자유롭게 사용하는 저장 메모리
- 자유저장소라 불림
1)값 형식(value)
-메모리에 값을 담는 형식
-스택에 할당
-기본데이터 형식과 구조체가 해당
2)참조(Referce) 형식
-메모리에 다른변수의 주소를 담음
-힙에 할당(가비지컬렉터가 자동으로 제거)
-복합데이터 형식과 클래스가 여기에 해당
데이터 형식(DataTypes)
정의 : 데이터의 유형과 크기를 뜻함
- 1.기본 데이터형식
- -부동 소수형식
- 2.복합 데이터 형식
-클래스
-구조체
-인터페이스
- 3. 논리 형식
- bool : 참 또는 거짓을 다루는 데이터
- 4.열거형식(Enumerated Type)
-하나의 이름 아래 묶은 상수들의
-enum 키워드를 이용하여 선언
- 5.var 형식
-var 를 형식으로 사용한 값은 컴파일러가 리터럴(변수의 값이 변하지 않는 데이터)을 분석하여 자동으로 형식을 추론 해주는 형식
- 지역 변수에 대해서만 사용가능
- 6.object 형식
-상속으로 어떤 데이터든 다룰 수있는 형식
-C#은 모든 데이터형식이 object형식을 받을 수 있도록 되어 있다.
-모든 데이터형식은 object 타입의 자식이다.
-박싱: 값 형식을 object 형식에 담아 형식 힙에 올리는 것
-언박싱 : 힙에 올라간 데이터를 object에 꺼내 값 형식으로 옮기는것.
- 7.Nullable
-비어있는 상태가 될수 있는 형식
-데이터형식 ? 변수이름; 형태로 작성
ex) int? a = null;
-값 형식만 가능, 참조는 불가능
-HasValue(값을 가지고 있는지) 와 Value(값 자체) 속성을 가진다.
-ex)int a? = null;
a= 37;
Console.WriteLine(a.Value); 37출력
Console.WriteLine(a.HasValue); true 출력
'C# > C#기초' 카테고리의 다른 글
6.인터페이스와 추상클래스 (0) | 2023.05.13 |
---|---|
5. 클래스와 객체지향 프로그래밍 (0) | 2023.05.11 |
4. 메소드 간추리기 (0) | 2023.05.09 |
3.코드의 흐름제어 (0) | 2023.05.08 |
2.데이터 가공 연산자 (0) | 2023.05.06 |