X가 Y가 될 수 있다면, F(X)도 F(Y)가 될 수 있다 > 공변성
X가 Y가 될 수 있다면, F(Y)가 F(X)가 될 수 있다 > 반공변성
이다.
인터페이스, 델리게이트에만 달 수 있는 제약조건임
https://edykim.com/ko/post/what-are-covariance-and-contravariance/
위는 이해할 때 도움이 된 글임
요약하면,
1. 함수 타입에서 반환 타입은 공변적(covariant) 이고, 인자 타입은 반공변적(contravariant) 이다.
2. 컬렉션이 불변이면 공변적(covariant) 이다.
그러니까 이 경우엔 너도 지원해라 이거인 듯
'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 |