.NET의 제네릭 인터페이스

이 문서에서는 여러 제네릭 형식 패밀리에 대해 공통 기능을 제공하는 .NET 제네릭 인터페이스에 대해 간략하게 설명합니다.

제네릭 인터페이스는 순서 및 같음 비교와 제네릭 컬렉션 형식에서 공유되는 기능을 위해 제네릭이 아닌 인터페이스에 형식이 안전한 대응 항목을 제공합니다. .NET 7에는 숫자와 유사한 형식(예: System.Numerics.INumber<TSelf>)에 대한 제네릭 인터페이스가 도입되었습니다. 이러한 인터페이스를 사용하면 수학적 기능을 제공하는 제네릭 메서드를 정의할 수 있습니다. 여기서 제네릭 형식 매개 변수는 제네릭 숫자 인터페이스를 구현하는 형식으로 제한됩니다.

참고 항목

여러 제네릭 인터페이스의 형식 매개 변수는 공변(covariant) 또는 반공변(contravariant)으로 표시되어 관련 인터페이스를 구현하는 형식을 유연하게 할당하고 사용할 수 있게 해줍니다. 자세한 내용은 공변성(Covariance) 및 반공변성(Contravariance)을 참조하세요.

같음 및 순서 비교

컬렉션 기능

  • ICollection<T> 제네릭 인터페이스는 제네릭 컬렉션 형식에 대한 기본 인터페이스입니다. 요소를 추가, 제거, 복사 및 열거하기 위한 기본 기능을 제공합니다. ICollection<T>은 제네릭 IEnumerable<T> 및 제네릭이 아닌 IEnumerable 둘 다에서 상속합니다.

  • IList<T> 제네릭 인터페이스는 인덱싱된 검색을 위한 메서드를 사용하여 ICollection<T> 제네릭 인터페이스를 확장합니다.

  • IDictionary<TKey,TValue> 제네릭 인터페이스는 키 검색을 위한 메서드를 사용하여 ICollection<T> 제네릭 인터페이스를 확장합니다. .NET 기본 클래스 라이브러리의 제네릭 사전 형식은 제네릭이 아닌 IDictionary 인터페이스도 구현합니다.

  • IEnumerable<T> 제네릭 인터페이스는 제네릭 열거자 구조를 제공합니다. 제네릭 열거자에 의해 구현된 IEnumerator<T> 제네릭 인터페이스는 제네릭이 아닌 IEnumerator 인터페이스를 상속합니다. 형식 매개 변수 T에 종속되지 않는 MoveNextReset 멤버는 제네릭이 아닌 인터페이스에만 나타납니다. 즉, 제네릭이 아닌 인터페이스의 소비자는 제네릭 인터페이스도 사용할 수 있습니다.

수학적 기능

.NET 7에서는 숫자형 형식과 이에 사용 가능한 기능을 설명하는 System.Numerics 네임스페이스에 제네릭 인터페이스를 도입합니다. .NET 기본 클래스 라이브러리가 제공하는 20개의 숫자 형식(예: Int32Double)이 이러한 인터페이스를 구현하도록 업데이트되었습니다. 이러한 인터페이스 중 가장 눈에 띄는 것은 대략 "실수" 숫자에 해당하는 INumber<TSelf>입니다.

이러한 인터페이스에 대한 자세한 내용은 제네릭 수학을 참조하세요.

참고 항목