-
C# 데이터 유형은?IT/C# 2024. 11. 24. 09:24728x90반응형
C#의 데이터 유형(Data Type)은 크게 **값 형식(Value Type)**과 **참조 형식(Reference Type)**으로 나뉘며, 데이터의 저장 방식과 메모리 관리가 다릅니다.
1. 값 형식 (Value Types)
값 형식은 데이터를 **스택(Stack)**에 저장하며, 변수 자체가 값을 직접 보유합니다.
기본 값 형식
- 정수형
- byte (1바이트, 0~255)
- sbyte (1바이트, -128~127)
- short (2바이트, -32,768~32,767)
- ushort (2바이트, 0~65,535)
- int (4바이트, -2,147,483,648~2,147,483,647)
- uint (4바이트, 0~4,294,967,295)
- long (8바이트, -9,223,372,036,854,775,808~9,223,372,036,854,775,807)
- ulong (8바이트, 0~18,446,744,073,709,551,615)
- 부동 소수점 형식
- float (4바이트, 약 ±1.5e-45 ~ ±3.4e38, 소수점 7자리)
- double (8바이트, 약 ±5.0e-324 ~ ±1.7e308, 소수점 15~16자리)
- decimal (16바이트, ±1.0 × 10^-28 ~ ±7.9 × 10^28, 소수점 28~29자리, 금융 계산용)
- 문자 및 논리형
- char (2바이트, 유니코드 문자 하나, ex: 'A', '가')
- bool (1바이트, true 또는 false)
- 기타
- enum (사용자 정의 열거형)
- struct (사용자 정의 구조체)
2. 참조 형식 (Reference Types)
참조 형식은 데이터를 **힙(Heap)**에 저장하며, 변수는 데이터의 메모리 주소를 참조합니다.
기본 참조 형식
- 문자열(String)
- string (문자열을 저장, ex: "Hello, World!")
- 객체(Object)
- 모든 타입의 기본 클래스.
- ex: object obj = 42;
- 배열(Array)
- 동일한 데이터 유형의 집합, ex: int[] arr = {1, 2, 3};
- 클래스(Class)
- 사용자 정의 데이터 구조, 객체 지향의 핵심.
- 인터페이스(Interface)
- 클래스 또는 구조체에 구현을 강제하는 메서드 및 속성의 집합.
- 델리게이트(Delegate)
- 메서드 참조를 저장하는 형식.
3. Nullable 타입
- 값 형식에도 null을 할당할 수 있도록 만든 타입.
- ex: int? nullableInt = null;
- Nullable<T> 또는 ?를 사용.
4. 동적 형식 (Dynamic Types)
- dynamic
- 런타임에 데이터 형식이 결정됨.
- ex: dynamic value = 10;
5. 타입 키워드와 System 네임스페이스
C#의 기본 데이터 유형은 실제로 System 네임스페이스의 클래스 및 구조체로 구현됩니다.
- 예: int는 System.Int32와 동일, string은 System.String과 동일.
6. 사용자 정의 데이터 유형
- 구조체(struct)
- 값 형식 사용자 정의.
- ex: struct Point { public int X; public int Y; }
- 열거형(enum)
- 상수 집합 정의.
- ex: enum Days { Sunday, Monday, Tuesday };
C#은 다양한 데이터 유형을 통해 강력한 타입 안정성을 제공하며, 다양한 상황에서 효율적으로 데이터를 다룰 수 있게 설계되어 있습니다.
728x90'IT > C#' 카테고리의 다른 글
C#과 VB.NET의 차이 (41) 2024.11.25 C# 개발툴은? (38) 2024.11.24 C# Class는? (45) 2024.11.24 C# 기본 문법 (42) 2024.11.24 C# 이란? (41) 2024.11.24 - 정수형