Share via


Interfacce nel sistema di tipi comuni

Aggiornamento: novembre 2007

Un'interfaccia definisce un contratto che specifica una relazione di tipo "può" o una relazione di tipo "ha". Le interfacce vengono in genere utilizzate per implementare funzionalità, ad esempio il confronto e l'ordinamento (interfacce IComparable e IComparable<T>), il test di uguaglianza (interfaccia IEquatable<T>) o l'enumerazione di elementi in un insieme (interfacce IEnumerable e IEnumerable<T>). Le interfacce possono includere proprietà, metodi ed eventi, che sono tutti membri astratti; ossia, anche se l'interfaccia definisce i membri e le relative firme, il compito di definire le funzionalità di ogni membro viene lasciato al tipo che implementa l'interfaccia. Ciò significa che qualsiasi classe o struttura che implementa un'interfaccia deve fornire le definizioni per i membri astratti dichiarati nell'interfaccia. Per un'interfaccia si può richiedere che qualsiasi classe o struttura implementata debba anche implementare una o più altre interfacce.

Alle interfacce si applicano le seguenti restrizioni:

  • Un'interfaccia può essere dichiarata con qualsiasi accessibilità ma i membri di interfaccia devono tutti avere accessibilità pubblica.

  • Nessuna autorizzazione di protezione può essere allegata ai membri o all'interfaccia stessa.

  • Con un'interfaccia non è possibile definire costruttori.

  • Le interfacce non possono definire campi.

  • Tutti i metodi, gli eventi e le proprietà astratte definite in un'interfaccia devono essere membri di istanza e non membri statici.

Ogni linguaggio deve fornire regole per il mapping di un'implementazione all'interfaccia che richiede il membro, in quanto più interfacce possono dichiarare un membro con la stessa firma e i membri possono avere implementazioni separate.

Vedere anche

Concetti

Membri dei tipi

Autorizzazioni di protezione

Altre risorse

Sistema di tipi comuni