No puedo pensar en ninguna razón técnica válida que las interfaces tienen que tener nombres definidos.
Puedo ver fácilmente una situación en la que los nombres se implementan automáticamente, como los miembros de respaldo para las propiedades implementadas automáticamente en la actualidad.
Sin embargo, creo que probablemente hay 3 razones principales por las que han sido necesarios:
1) Probablemente fue sustancialmente más fácil de implementar la validación de la interfaz en el compilador utilizando las mismas reglas que los métodos actuales. Como solo hace relativamente poco tiempo se introdujeron las propiedades implementadas automáticamente, sospecho que se trata de un cambio de compilador no trivial.
2) Para los idiomas que admiten la auto-creación de los miembros de la interfaz en la clase implementadora (es decir, VB), probablemente sea mucho más fácil crear la implementación de interfaz utilizando nombres predefinidos que tratar de crear nombres sobre la marcha .
3) Como una interfaz puede exponerse fuera de la aplicación de definición, los nombres eliminan la ambigüedad asociada con una interfaz mal definida.
Por ejemplo, el intento de poner en práctica un método de interfaz de:
void Foo(string, string, int)
lo más probable es que el plomo sustancialmente más confusión que tu ejemplo autodocumentado. Sin embargo, esto es realmente más un problema de usabilidad de interfaz que uno técnico, aunque se podría argumentar que si la interfaz no se puede usar, existe un problema técnico subyacente.
creo que haría nombres de los métodos de firma ¡¡¡consistente!!! –
Ver mi último comentario editado. –
a lo que me refiero es que las declaraciones de métodos son consistentes en todas las clases e interfaces ... –