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)
      • MongoDB (4)
      • 하드웨어 (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)
  • 인기 글

  • 태그

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

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

티스토리툴바