X가 Y가 될 수 있다면, F(X)도 F(Y)가 될 수 있다 > 공변성
X가 Y가 될 수 있다면, F(Y)가 F(X)가 될 수 있다 > 반공변성
이다.
인터페이스, 델리게이트에만 달 수 있는 제약조건임
https://edykim.com/ko/post/what-are-covariance-and-contravariance/
공변성과 반공변성은 무엇인가?
Stephan Boyer의 What are covariance and contravariance?을 번역한 글이다. 공변성과 반공변성은 무엇인가? 서브타이핑은 프로그래밍 언어 이론에서 까다로운 주제다. 공변성과 반공변성은 오해하기 쉬운 주
edykim.com
위는 이해할 때 도움이 된 글임
요약하면,
1. 함수 타입에서 반환 타입은 공변적(covariant) 이고, 인자 타입은 반공변적(contravariant) 이다.
2. 컬렉션이 불변이면 공변적(covariant) 이다.
그러니까 이 경우엔 너도 지원해라 이거인 듯
![](https://blog.kakaocdn.net/dn/R3yxT/btr7SuFW75H/5NjsxME6mmjq560P4HFX1K/img.png)
![](https://blog.kakaocdn.net/dn/6LyZc/btr7PrbUJBh/Iec2EBOaoTzkKxKtYCAR90/img.png)
![](https://blog.kakaocdn.net/dn/w3pvu/btr7UJJxzPa/iu0qrqhIMexuwX5e2q3cq0/img.png)
![](https://blog.kakaocdn.net/dn/eIYhj6/btr7Su0fii8/e7gWKWMOlk3kTTSTNzZ46k/img.png)
![](https://blog.kakaocdn.net/dn/DXAZ7/btr7HfDETvh/lbZrm5jMsZM2tNBw4AKhQ1/img.png)
![](https://blog.kakaocdn.net/dn/dlK66U/btr7C1Mrg6I/h3WaZkX7V9Ualhog1kpBr1/img.png)
![](https://blog.kakaocdn.net/dn/dz8S4A/btr7HgWR0aA/9oSKsUKtToCsDilRQLA8F0/img.png)
'C#' 카테고리의 다른 글
[C#] ThreadLocalStorage? (0) | 2023.04.06 |
---|---|
[C#] ReadWriteLock 구현 (0) | 2023.04.05 |
[C#] SpinLock 구현 (0) | 2023.03.29 |
[C#] IComparable과 IComparer (0) | 2023.03.26 |
[C#] Dispose 패턴 (0) | 2023.03.23 |