C# Boxing

2023. 6. 12. 10:07·C#
반응형

C#은 객체 지향 프로그래밍 언어로, 값 형식과 참조 형식을 모두 지원합니다. 값 형식은 스택에 저장되고 참조 형식은 힙에 저장됩니다. 그런데 값 형식을 참조 형식으로 사용하려면 어떻게 해야 할까요? 이때, C# Boxing 개념이 필요합니다.

Boxing이란?

Boxing은 값 형식을 참조 형식으로 변환하는 과정을 말합니다. Boxing을 사용하면 값 형식을 힙에 저장할 수 있습니다. 이렇게 하면 값 형식이 참조 형식으로 사용됩니다. Boxing을 사용하면 값 형식을 참조 형식으로 사용할 수 있으므로, 값 형식과 참조 형식을 혼합하여 사용할 수 있습니다.

Boxing의 예

다음은 Boxing의 간단한 예입니다.

int i = 10;
object obj = i;

위의 예제에서 i 변수는 int 값 형식입니다. obj 변수는 object 참조 형식입니다. obj 변수에 i 값을 할당하면 Boxing이 발생합니다.

Boxing의 장점

Boxing을 사용하면 값 형식을 참조 형식으로 사용할 수 있습니다. 이는 값 형식과 참조 형식을 혼합하여 사용할 수 있다는 것을 의미합니다. 이로 인해 코드의 유연성이 높아지고 재사용성이 향상됩니다.

예를 들어, 값을 참조 형식으로 사용하면 값 형식의 메서드를 호출할 수 있습니다. 이는 값 형식의 유용한 기능을 참조 형식에서도 사용할 수 있음을 의미합니다. 또한 Boxing된 값 형식을 컬렉션에 저장할 수 있습니다. 이는 값 형식을 컬렉션에 직접 저장할 수 없는 C#에서 매우 유용합니다.

Boxing의 단점

Boxing을 사용하면 값 형식을 참조 형식으로 변환하는 과정에서 성능 저하가 발생할 수 있습니다. 이는 Boxing된 값 형식을 다시 값 형식으로 변환할 때 발생합니다. 이로 인해 코드의 실행 속도가 느려질 수 있습니다. 또한 Boxing된 값 형식은 가비지 컬렉션의 대상이 됩니다. 이는 프로그램의 메모리 사용량이 늘어날 수 있음을 의미합니다.

결론

C# Boxing은 값 형식을 참조 형식으로 사용할 수 있도록 해주는 중요한 개념입니다. Boxing을 사용하면 코드의 유연성이 높아지고 재사용성이 향상됩니다. 그러나 성능 저하가 발생할 수 있으므로 상황에 따라 적절히 사용해야 합니다. 이번 글을 통해 C# Boxing에 대해 더욱 자세히 알아보았습니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

실수형 변수 decimal, float, double  (1) 2023.06.19
C# 패턴식 switch문  (0) 2023.06.15
C# Jump 문 : break, continue, return, goto  (0) 2023.06.10
C# 메서드 매개변수 in, ref, out, param  (0) 2023.06.09
C# with 식  (1) 2023.06.08
'C#' 카테고리의 다른 글
  • 실수형 변수 decimal, float, double
  • C# 패턴식 switch문
  • C# Jump 문 : break, continue, return, goto
  • C# 메서드 매개변수 in, ref, out, param
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    devlife
    리뷰이관
    라떼우유
    쇼핑몰리뷰
    Python
    카페24리뷰이관
    상품 리뷰 크롤링
    rtsp
    카페24리뷰
    리스트
    programmerlife
    스마트스토어리뷰
    programming101
    list
    파이썬
    codingcommunity
    cv2
    리뷰관리
    긴유통기한우유
    codingtips
    믈레코비타멸균우유
    ipcamera
    learntocode
    appdevelopment
    unity
    스크립트 실행
    셀레니움
    유니티
    스크립트 실행 순서
    C#
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
C# Boxing
상단으로

티스토리툴바