집 >백엔드 개발 >C#.Net 튜토리얼 >C# 학습일기 18---Boxing 변환 및 Unboxing 변환
앞선 연구에 따르면 기본적으로 값 유형과 값 유형 간의 변환, 참조 유형과 참조 유형 간의 변환을 구현할 수 있는데, 값 유형과 참조 유형(객체) 간의 변환은 어떻게 구현하나요? ?
C#에서는 boxing을 사용하여 값 유형을 참조 유형으로 변환하고 unboxing을 사용하여 참조 유형을 값 유형으로 변환합니다. 즉, 모든 값 유형, 참조 유형 간의 변환을 구현할 수 있습니다. , boxing 및 unboxing을 사용하면 모든 유형을 객체 유형으로 간주할 수 있습니다(객체 유형에 대한 정보를 보려면 참조 유형----객체 클래스를 클릭하여 입력할 수 있습니다)
Boxing 변환:
여기서 덧붙이자면 .NET에서는 데이터 유형이 값 유형과 참조(C++ 포인터와 동일하지 않음) 유형으로 구분됩니다. 이에 따라 메모리 할당은 두 가지 방법이 있는데, 하나는 스택이고 다른 하나는 입니다. 힙, (관리되는 힙) 값 유형은 스택에만 할당됩니다. 참조 유형은 관리되는 힙에 메모리를 할당합니다.
예를 작성하세요:
int i = 123; object o = i; //实现装箱操作,其实也是隐式转换。
복싱 변환의 개략도는 다음과 같습니다.
본질 of boxing 변환 위는 복사형 변환입니다. 즉, boxing을 완료한 후 i 값과 o 값을 변경해도 변경되지 않습니다.
Unboxing 변환:
> > a boxing 값을 입력한 다음 이 인스턴스의 값을 값 유형의 변수에 복사합니다. 위의 boxing 코드를 기반으로 예시를 작성합니다.int n_int = (int)o; //强制将object类型转换为int 类型
Boxing의 역과정으로 객체를 강제로 원래의 타입으로 변환한다고 볼 수 있습니다. Unboxing 값은 대상 변수와 동일한 타입을 가져야 한다는 점에 유의해야 합니다. 으로 변환되게 되어 있습니다. 여기서 강조하고 싶은 것은 boxing과 unboxing은 value type이나 reference type에서 object type으로의 변환, object type에서 value type이나 reference type으로의 변환이라는 점이다. 위 내용은 다음과 같다. C# 학습일기 18의 내용----boxing 변환 및 unboxing 변환 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!