IEquatable<T> 인터페이스

정의

값 형식 또는 클래스에서 인스턴스의 같음을 결정하는 형식별 메서드를 만들기 위해 구현하는 일반화된 메서드를 정의합니다.

generic <typename T>
public interface class IEquatable
public interface IEquatable<T>
type IEquatable<'T> = interface
Public Interface IEquatable(Of T)

형식 매개 변수

T

비교할 개체의 형식입니다.

파생

예제

메서드에 대한 예제를 IEquatable<T>.Equals 참조하세요.

설명

이 인터페이스는 값이 동일시될 수 있는 형식(예: 숫자 및 문자열 클래스)에 의해 구현됩니다. 값 형식 또는 클래스는 메서드를 Equals 구현하여 인스턴스의 같음을 결정하는 데 적합한 형식별 메서드를 만듭니다.

참고

인터페이스는 IComparable<T> 구현 형식의 CompareTo 인스턴스 정렬 순서를 결정하는 메서드를 정의합니다. IEquatable<T> 인터페이스를 정의 합니다 Equals 메서드를 구현 하는 형식의 인스턴스가 같은지 여부를 확인 합니다.

인터페이스는 IEquatable<T> , , 등의 제네릭 컬렉션 개체Dictionary<TKey,TValue>에서 사용되며 LinkedList<T> , List<T>, IndexOfLastIndexOfRemove와 같은 Contains메서드에서 같음을 테스트할 때 사용됩니다. 제네릭 컬렉션에 저장될 수 있는 모든 개체에 대해 구현해야 합니다.

구현자 참고

인터페이스의 형식 매개 변수를 IEquatable<T> 이 인터페이스를 구현하는 형식으로 바꿉 있습니다.

를 구현IEquatable<T>하는 경우 및 GetHashCode() 의 기본 클래스 구현도 재정의 Equals(Object) 하여 해당 동작이 메서드의 Equals(T) 동작과 일치하게 해야 합니다. 를 재정 Equals(Object)의하는 경우 재정의된 구현은 클래스의 정적 Equals(System.Object, System.Object) 메서드 호출에서도 호출됩니다. 또한 및 op_Inequality 연산자를 op_Equality 오버로드해야 합니다. 이렇게 하면 같음 테스트에 대한 모든 테스트가 일관된 결과를 반환합니다.

재정 Equals(Object)의에 대한 자세한 내용은 를 참조하세요 Equals(Object).

값 형식의 경우 항상 더 나은 성능을 위해 를 구현 IEquatable<T> 하고 재정 Equals(Object) 의해야 합니다. Equals(Object) 는 값 형식을 입력하고 리플렉션을 사용하여 두 값을 같음으로 비교합니다. 의 구현과 재정 Equals(Object)Equals(T) 모두 일관된 결과를 반환해야 합니다.

를 구현 IEquatable<T>하는 경우 형식의 인스턴스를 정렬하거나 정렬할 수 있는지도 구현 IComparable<T> 해야 합니다. 형식이 를 구현하는 IComparable<T>경우 거의 항상 을 구현 IEquatable<T>합니다.

형식이 주문 관계를 지원하지만 같음이 순서 관계와 다를 수 있는 몇 가지 디자인이 있습니다. 사전순으로 Person 정렬하는 클래스를 고려합니다. 이름이 같은 두 사람이 같은 정렬을 하지만 같은 사람이 아닙니다.

메서드

Equals(T)

현재 개체가 동일한 형식의 다른 개체와 같은지 여부를 나타냅니다.

적용 대상

추가 정보