Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Interfaccia IEquatable<T>

 

Data di pubblicazione: novembre 2016

Definisce un metodo generalizzato che viene implementato da un tipo di valore o da una classe per creare un metodo specifico del tipo per la determinazione dell'uguaglianza delle istanze.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public interface IEquatable<T>

Parametri tipo

T

Tipo di oggetti da confrontare.

NomeDescrizione
System_CAPS_pubmethodEquals(T)

Indica se l'oggetto corrente è uguale a un altro oggetto dello stesso tipo.

Questa interfaccia è implementata dai tipi i cui valori possono essere identificati (per le classi di esempio, numerici e stringa). Un tipo di valore o una classe implementa il Equals metodo per creare un metodo specifico del tipo appropriato per la determinazione dell'uguaglianza delle istanze.

System_CAPS_noteNota

Il IComparable<T> interfaccia definisce il CompareTo metodo, che determina l'ordinamento delle istanze del tipo di implementazione. Il IEquatable<T> interfaccia definisce il Equals metodo, che determina l'uguaglianza delle istanze del tipo di implementazione.

Il IEquatable<T> interfaccia viene utilizzata dagli oggetti di raccolte generiche, ad esempio Dictionary<TKey, TValue>, List<T>, e LinkedList<T> durante il test per verificarne l'uguaglianza in metodi quali Contains, IndexOf, LastIndexOf, e Remove. Deve essere implementato per qualsiasi oggetto che può essere memorizzato in una raccolta generica.

Note per gli implementatori:

Sostituire il parametro di tipo di IEquatable<T> interfaccia con il tipo che implementa questa interfaccia.

Se si implementa IEquatable<T>, di eseguire l'override delle implementazioni della classe di base di Object.Equals(Object) e GetHashCode in modo che sia coerenza con quello del relativo comportamento di IEquatable<T>.Equals metodo. Se si esegue l'override Object.Equals(Object), l'implementazione sottoposta a override viene chiamato anche nelle chiamate a statico Equals(System.Object, System.Object) metodo nella classe. Inoltre, è necessario eseguire l'overload di op_Equality e op_Inequality operatori. In questo modo si garantisce che tutti i test per verificarne l'uguaglianza restituiscano risultati coerenti.

System_CAPS_noteNota

Per informazioni sull'override Equals(Object), vedere il Object.Equals(Object) articolo.

Per un tipo valore, è necessario implementare sempre IEquatable<T> ed eseguire l'override Object.Equals(Object) per ottenere prestazioni migliori. Object.Equalsfinestre di tipi di valore e si basa sulla reflection per confrontare due valori per verificarne l'uguaglianza. Sia l'implementazione di Equals e la sostituzione di Object.Equals deve restituire risultati coerenti.

Se si implementa IEquatable<T>, è necessario implementare anche IComparable<T> se le istanze del tipo possono essere ordinate o ordinate. Se il tipo implementa IComparable<T>, è necessario implementare anche sempre IEquatable<T>.

Vedere l'esempio per il IEquatable<T>.Equals metodo.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: