C\#포장 및 해체

Object 형식 은 모든 종류의 기본 클래스 이 며,아래 에는 Value Type 형식 이 있 습 니 다.어떤 구조 야,매 거 야,모두 Value Type 을 계승 하 는 것 은 모두 값 유형 이다.다른 어떤 종류,배열,문자열 등 은 모두 인용 형식 입 니까?
쉽게 말 하면 오 브 젝 트 를 직접 계승 하 는 것 은 모두 인용 유형 이 고 Value Type 을 계승 하 는 것 은 모두 값 유형 이다.
그렇다면 성형 과 같은 구 조 는 이치 상 오 브 젝 트 로부터 간접 적 으로 물 려 받 은 것 이 므 로 리 씨 교체 원칙 에 따라 성형 을 오 브 젝 트 로 전환 하 는 데 는 문제 가 없 을 것 으로 보인다.

위의 코드 처럼 이 b 는 값 형식 입 니까?값 형식 이 라면 오 브 젝 트 를 직접 계승 하 는 것 과 인용 유형 이 모순 되 는 것 같 습 니 다.사실 이것 이 바로 포장 이다.A 는 값 형식 이 고 b 가 되 며 Object 형식 이 되 었 으 며 사실은 인용 유형 이 되 었 습 니 다.쉽게 말 하면 포장 은 값 유형 을 인용 유형 으로 바 꾸 는 것 입 니 다.이에 대응 하 는 상 자 를 뜯 고 인용 유형 을 값 형식 으로 바 꿉 니 다.
그게 장르 전환 아니 야?무슨 뜯 기와 포장 이라는 듣 기 싫 은 이름 을 다!
땡!값 유형 과 인용 유형 간 의 전환 은 어떤 일반적인 하위 클래스 의 부모 클래스,부모 클래스 의 로터 클래스 와 다 릅 니까?그의 이러한 전환 은 저장 상의 변화 와 관련 될 수 있 습 니 다.

double d = 2.8;
object obj = d; //    ,       
d=(double)obj; //    ,    ,       
암시 적 변환:성명 없 이 전환 할 수 있 는 변환

int i=221;
long j=i;
명시 적 전환:'강제 전환'이 라 고도 부른다.

double x=25.0123;
int y=(int)x;
int y=Convert.ToInt32(x);
포장:값 형식 을 인용 형식 으로 변환(암시 적 변환)
데 이 터 를 창고 에서 위탁 관리 더미 에 저장 하 다.
뜯 기:참조 형식 을 값 형식 으로 변환 합 니 다(명시 적 변환)


설명:int i=123;값 형식 변수 i,할당 값 은 123 입 니 다.메모리 에 스 택 안에 이런 공간 이 있 습 니 다.123 을 저장 하고 변수 이름 i 는 이 공간 을 표시 합 니 다.
Object o=(object)i; 하나의 값 형식의 변수 i 를 object 형식의 변수 o 에 할당 하면 상자 에 담 을 수 있 습 니 다.Object 형식 은 인용 형식 입 니 다.하나의 값 형식 을 인용 형식 으로 바 꾸 면 포장 입 니 다.여기 서 우 리 는 강제 변환 을 진행 하 였 으 며,사실상 강제 변환 없 이도 상 자 를 포장 할 수 있 습 니 다.object 형식 은 모든 데이터 형식의 루트 부모 클래스 이기 때 문 입 니 다.
포장 과정 에서 메모리 에서 무슨 일이 일 어 났 습 니까?
먼저 o 를 위해 위탁 관리 더미 에 공간 을 열 고 123 을 저장 하면 i 는 포장 된다.
포장 과 상 자 를 뜯 는 것 은 비교적 성능 을 소모 하 는 것 이 고 기괴 한 bug 도 도입 할 것 이 므 로 우 리 는 포장 과 상 자 를 뜯 는 것 을 피해 야 한다. 
왜 포장 과 상 자 를 뜯 어야 합 니까?
포장 을 배 우 는 것 은 포장 을 최대한 피하 기 위해 서 이 며,포장 은 종종 강요당 한다.
C\#범 형 을 지원 하지 않 기 전에 일부 프로그램 이 유 니 버 설 적 으로 사용 되 기 위해 서 는 Object(Object 는 모든 종류의 부모 클래스)를 사용 하기 때문에 포장 해 야 합 니 다.
포장 한 대상 에 대해 서 는 지정 한 방법 을 직접 호출 할 수 없 기 때문에 먼저 상 자 를 뜯 고 방법 을 호출 해 야 합 니 다.그러나 다시 상 자 를 뜯 으 면 새로운 스 택 인 스 턴 스 가 생 성 되 고 포장 대상 을 수정 할 수 없습니다.이렇게 하면 자원 이 많이 소모 된다!
이상 은 C\#포장 과 분해 에 대한 상세 한 내용 입 니 다.c\#포장 과 분해 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기