앞선 연구에 따르면 기본적으로 값 유형과 값 유형 간의 변환, 참조 유형과 참조 유형 간의 변환을 구현할 수 있는데, 값 유형과 참조 유형(객체) 간의 변환은 어떻게 구현하나요? ?
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 类型