한 편의 글 은 C\#중의 협 변,역 변 을 이해한다.

1.기본 개념
공식:협 변 과 역 변 은 모두 용어 로 전 자 는 원시 적 으로 지정 한 파생 유형의 파생 정도 보다 더 큰(구체 적 인)유형 을 사용 할 수 있 고 후 자 는 원시 적 으로 지정 한 파생 유형의 파생 정도 보다 더 작은(구체 적 이지 않 은)유형 을 사용 할 수 있다.[MSDN ]
공식:
          협 변:IFoo<부류>=IFoo<부류>;
          역 변:IBar<하위 클래스>=  IBar<부류>;
잠시 이해 하지 못 해도 괜 찮 습 니 다.계속 내 려 다 보 세 요.
2.협 변(공분 산)
1)out 키워드
     범 형 유형 매개 변수 에 대해 out 키 워드 는 유형 매개 변 수 를 협동 적 으로 지정 할 수 있 습 니 다.범용 인터페이스 와 의뢰 에서 out 키 워드 를 사용 할 수 있 습 니 다.[MSDN ]
2)노 신:한 장의 그림 이 천 마디 말 보다 낫다.
   
           비고:범 형 의뢰 의 협 변 원리 도 마찬가지다.
        3)협 변 이란 무엇 인가?
           협 변 은 구체 적 인 구성원 의 출력 매개 변 수 를 유형 전환 하 는 것 이 고 유형 전환 의 준칙 은'리 씨 교체 원칙'이다.
3.역 변(굴절력)
 1)in 키워드
     범 형 유형 매개 변수 에 대해 in 키 워드 는 유형 매개 변 수 를 역 변 으로 지정 할 수 있 습 니 다.범용 인터페이스 와 의뢰 에서 in 키 워드 를 사용 할 수 있 습 니 다.[MSDN]
 2)노 신:한 장의 그림 이 천 마디 말 보다 낫다.
     
    비고:범 형 의뢰 의 역 변 원리 도 마찬가지다.
        3)역 변이 무엇 입 니까?
            역 변 은 구체 적 인 구성원 의 입력 매개 변 수 를 유형 전환 하 는 것 이 고 유형 전환 의 준칙 은'리 씨 교체 원칙'이다.
4.자문 자 답
1)협 변,역 변 은 왜 범 형 인터페이스 나 의뢰 만 할 수 있 습 니까?범 형 류 를 겨냥 해 서 는 안 된다?
      방법 구성원(인터페이스 에서 필드 를 정의 할 수 없 음)만 정의 할 수 있 고,방법 구성원 은 대상 을 만 들 때 대상 메모리 할당 과 관련 이 없 기 때문에 유형(메모리)이 안전 합 니 다.
      왜 범 형 을 겨냥 하지 않 습 니까?범 형 류 는 템 플 릿 류 이 고 클래스 구성원 은 필드 를 포함 하기 때문에 서로 다른 유형의 필드 는 대상 의 메모리 배분 에 영향 을 주 고 파생 관계 가 없 는 유형 은 호 환 되 지 않 으 며 메모리 가 안전 하지 않 습 니 다.
2)협 변,역 변 은 왜 유형 이 안전 합 니까?
      본질 적 으로 리 씨 교체 원칙 이다.리 씨 교체 원칙 에서 알 수 있 듯 이 파생 정도 가 작은 것 은 파생 정도 가 큰 부분 집합 이기 때문에 하위 클래스 가 부모 클래스 를 교체 하 는 위 치 는 전체 프로그램 기능 이 변 하지 않 는 다.
3)정부 가 협 변,역 변 에 대한 정 의 를 지금 알 수 있 습 니까?
      위 에서 알 아 봤 으 니 정부의 정의 도 틀림없이 문제 가 없 을 것 이다.파생 정도 가 작 으 면 기류 로 이해 할 수 있 고 파생 정도 가 크 면 자 류 나 파생 류 로 이해 할 수 있다.왜 정도 라 는 단 어 를 사용 하 는 지 는 상속 체인 의 깊이 가 제한 이 없 기 때문이다.
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기