Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 공분산 및 반공분산

<시간/>

클래스를 효과적으로 다루려면 공분산과 대조분산의 개념을 사용하십시오.

다음을 우리의 클래스로 생각합시다. 하나는 클래스 Two의 기본 클래스이고 Two는 Three의 기본 클래스입니다.

class One { 
}
class Two: One {
}
class Three : Two { 
}

기본 클래스는 파생 클래스를 보유할 수 있지만 그 반대는 불가능합니다. 공분산을 사용하면 기본 유형이 예상되는 파생 유형을 전달할 수 있습니다. 공분산은 C#의 배열, 인터페이스, 대리자 등에 사용할 수 있습니다.

대조 분산은 매개변수에 대한 것입니다. 기본 클래스의 매개 변수가 있는 메서드는 Contravariance가 있는 파생 클래스의 매개 변수를 예상하는 대리자에게 할당할 수 있습니다.