Questo è in qualche modo fuorviante, poiché un'interfaccia, per definizione, non fornisce alcuna implementazione.
Tuttavia, molte parti del framework cercano di semplificare la vita, quindi forniscono un metodo che richiede un'interfaccia, ma fornisce anche un sovraccarico senza parametri. Un buon esempio è List<T>.Sort
.
La documentazione suggerisce che, se si utilizza un metodo che normalmente richiede un IComparer<T>
, ma lo si utilizza tramite un sovraccarico che non lo fa, verrà utilizzata l'implementazione predefinita di riferimento.
Tuttavia, questo è davvero un "dettaglio di implementazione" di classi non correlate all'interfaccia stessa. Personalmente penso che questa è una scelta povera di parole nella documentazione, e dovrebbe essere qualcosa di più simile a:
Molti tipi nel quadro contare su un'implementazione comune di questa interfaccia fornita da il Comparer classe.
Questo sarebbe, a mio parere, di fornire un significato più chiaro a questo ...
fonte
2010-03-12 19:45:32
Mi piace molto queste spiegazioni! =) –
@Will: Grazie! Faccio del mio meglio;) –
Aggiungi qualcosa. A volte, un framework utilizza il modello Special Cases (o il pattern Null Object) e un'implementazione predefinita di un'interfaccia può far parte del pattern. :) –