한 편의 글 은 C\#중의 협 변,역 변 을 이해한다.
2833 단어 c#협동 하여 변화 하 다역 변
공식:협 변 과 역 변 은 모두 용어 로 전 자 는 원시 적 으로 지정 한 파생 유형의 파생 정도 보다 더 큰(구체 적 인)유형 을 사용 할 수 있 고 후 자 는 원시 적 으로 지정 한 파생 유형의 파생 정도 보다 더 작은(구체 적 이지 않 은)유형 을 사용 할 수 있다.[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)정부 가 협 변,역 변 에 대한 정 의 를 지금 알 수 있 습 니까?
위 에서 알 아 봤 으 니 정부의 정의 도 틀림없이 문제 가 없 을 것 이다.파생 정도 가 작 으 면 기류 로 이해 할 수 있 고 파생 정도 가 크 면 자 류 나 파생 류 로 이해 할 수 있다.왜 정도 라 는 단 어 를 사용 하 는 지 는 상속 체인 의 깊이 가 제한 이 없 기 때문이다.
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.