728x90
IEnumerable<out T>
- C#에서 제네릭 인터페이스 IEnumeable<T>를 나타내며, 제네릭 타입 매개변수 T가 공변성(Covariance)을 가지는 것을 의미한다.
- 공변성은 타입 계층에서 파생된 타입을 사용할 수 있게 해주는 기능으로, 이는 특히 인터페이스나 델리게이트에서 유용하게 쓰인다.
IEnumerable<T> 인터페이스
- 컬렉션을 반복(iterate)할 수 있는 기능을 제공하는 제네릭 인터페이스이다.
- System.Collections.Generic 네임스페이스에 속하며, 다음과 같은 기본 멤버를 포함한다.
- IEnumerator<T> GetEnumerator();
- 이 인터페이스는 컬렉션의 요소에 대해 순차적으로 접근할 수 있는 기능을 제공한다. 예를 들어, foreach 문에서 IEnumerable<T>를 사용하여 컬렉션의 모든 요소를 열거할 수 있다.
공변성(Covariance)
- <out T>에서 out 키워드는 공변성을 나타낸다. IEnumerable<Base>가 IEnumerable<Derived>로 대체될 수 있다는 것을 의미한다.
- 여기서 Derived는 Base의 파생 클래스이다.
out 키워드의 역할
- 제네릭 인터페이스나 델리게이트에서 out 키워드는 해당 타입 매개변수가 반환 타입으로만 사용 될 수 있음을 명시한다. 이는 다음과 같은 제약을 의미한다.
- T는 반환할 수는 있지만, T를 소비(즉, 메서드의 매개변수로 사용)할 수는 없다.
- 즉, IEnumerable<T>의 경우 T 타입의 요소를 열거할 수는 있지만, T 타입의 요소를 추가하거나 수정할 수 없다.
728x90
'언어 > C#' 카테고리의 다른 글
System.Data.SqlClient (0) | 2024.08.08 |
---|---|
LINQ Count 메서드 (0) | 2024.08.08 |
튜플(Tuple) (0) | 2024.08.08 |
System.Data.SqlClient.SqlException (0x80131904) (0) | 2024.08.08 |
System.Data.SqlClient.SqlConnection.OnError (0) | 2024.08.08 |