Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

맛있는 개발노트 (맛과 개발을 함께)

C# 세미나 자료: 미리 정의된 형식의 분류 본문

C# 학습/C# 언어의 기초

C# 세미나 자료: 미리 정의된 형식의 분류

DevGourmet 2025. 4. 7. 11:33

1. 개요

C#은 .NET에서 제공하는 다양한 **미리 정의된 형식(Built-in Types)**을 제공합니다. 이들 형식은 언어의 핵심을 구성하며, 다양한 연산과 기능을 안정적으로 수행할 수 있게 해 줍니다. 본 세미나에서는 이러한 미리 정의된 형식을 카테고리별로 분류하고, 각각의 특징과 예제 코드, 실무에서의 활용 관점으로 설명합니다.


2. 분류 기준

C#의 미리 정의된 형식은 다음과 같이 분류할 수 있습니다:

  • 정수형(Integer Types)
  • 실수형(Floating Point Types)
  • 논리형(Boolean Type)
  • 문자형(Character Type)
  • 문자열형(String Type)
  • 객체형(Object Type)
  • 기타 특수 형식(Nullable, Dynamic 등)

3. 분류별 설명 및 예시

3.1 정수형 (Integer Types)

  • byte, sbyte, short, ushort, int, uint, long, ulong
  • 기본적으로 정수값 표현에 사용됨
int count = 100;
byte flags = 0xFF;
long population = 7800000000L;

3.2 실수형 (Floating Point Types)

  • float, double, decimal
  • 소수점을 포함한 실수 표현에 사용
  • decimal금융 계산에서 주로 사용
float height = 172.5f;
double pi = 3.14159;
decimal price = 19999.99m;

3.3 논리형 (Boolean Type)

  • bool
  • true 또는 false 값을 가짐
bool isLoggedIn = true;

3.4 문자형 (Character Type)

  • char
  • 유니코드 문자 하나를 저장
char firstLetter = 'A';

3.5 문자열형 (String Type)

  • string
  • 텍스트 데이터 처리용 참조형
string name = "홍길동";

3.6 객체형 (Object Type)

  • object
  • 모든 형식의 기본(Base Type)
  • 값 형식도 참조형처럼 처리 가능(Boxing)
object data = 123; // boxing

3.7 특수 형식

  • dynamic: 런타임에 타입이 결정됨
  • var: 컴파일 타임에 타입 추론됨
  • nullable: 값 형식에 null 허용 → int?, double?
dynamic x = "Hello";
var y = 10;         // int로 추론
int? age = null;    // nullable int

4. 정리된 표

분류형식 예시특징

정수형 int, long, byte, short 정수 표현, 크기별 분류
실수형 float, double, decimal 소수점 표현, decimal은 정밀
논리형 bool true/false
문자형 char 유니코드 문자 1개
문자열형 string 문자열 처리 참조형
객체형 object 모든 타입의 기본
특수형 var, dynamic, nullable 유연한 타입 표현

5. 결론 및 실무 팁

  • 미리 정의된 형식은 System 네임스페이스에 정의된 .NET 타입의 축약형
  • 기본 형식은 실제로도 System.Int32, System.String 등 클래스 구조를 가짐
  • 가독성과 정확성을 위해 적절한 타입 선택은 매우 중요
  • decimal은 금융, int는 일반 카운팅, bool은 상태 플래그 등 역할에 따라 구분

6. Q&A

  • Q: vardynamic의 차이는? A: var는 컴파일 타임 타입 결정, dynamic은 런타임에 타입 결정됩니다.
  • Q: 문자열은 왜 참조 형식인가요? A: 문자열은 변경 불가능(immutable)한 참조 형식으로 설계되어 메모리 관리와 비교 최적화에 유리합니다.
  • Q: objectdynamic 중 언제 어떤 걸 써야 하나요? A: object는 타입 캐스팅이 필요하고 안전하며, dynamic은 유연하지만 런타임 오류 가능성이 높습니다.

감사합니다!