non riesco a pensare di qualsiasi ragione tecnica valida che le interfacce avere nomi definiti.
Posso facilmente vedere una situazione in cui i nomi sono auto-implementati come i membri di supporto per le proprietà auto-implementate sono oggi.
Tuttavia, penso che probabilmente ci sono 3 motivi principali per cui sono stati necessari:
1) E 'stato probabilmente sostanzialmente più facile da implementare la convalida interfaccia nella compilatore utilizzando le stesse regole dei metodi attuali. Poiché solo relativamente di recente sono state introdotte le proprietà auto-implementate, sospetto che questa sia una modifica non banale del compilatore.
2) Per quelle lingue che supportano la creazione automatica dei membri dell'interfaccia nella classe di implementazione (ad esempio VB), è probabilmente molto più facile creare l'implementazione dell'interfaccia utilizzando nomi predefiniti rispetto al tentativo di creare nomi al volo .
3) Poiché un'interfaccia può essere esposta al di fuori dell'applicazione di definizione, i nomi rimuovono l'ambiguità associata a un'interfaccia mal definita.
Per esempio, il tentativo di implementare un metodo di interfaccia di:
void Foo(string, string, int)
molto probabilmente portare a sostanzialmente più confusione che il tuo esempio di auto-documentazione. Tuttavia, si tratta di un problema di usabilità dell'interfaccia più che tecnico, sebbene si possa sostenere che, se l'interfaccia è inutilizzabile, esiste un problema tecnico sottostante.
fonte
2011-12-23 09:46:02
penso che avrebbe fatto i nomi di metodo di firma coerente !!! –
Vedere il mio ultimo commento modificato. –
quello a cui mi riferisco è come le dichiarazioni dei metodi sono coerenti tra classi e interfacce ... –