Я не могу думать о какой-либо действительной технической причине, что интерфейсы должны иметь имена, определенные.
Я могу легко увидеть ситуацию, когда имена автоматически реализованы, как элементы поддержки для автоматически реализованных свойств.
Однако, я думаю, что есть, вероятно, 3 основные причины, почему они необходимы:
1) Это, вероятно, было значительно проще реализовать проверку интерфейса в компиляторе, используя те же правила, как фактические методы. Поскольку относительно недавно были введены автоматически реализованные свойства, я подозреваю, что это нетривиальное изменение компилятора.
2) Для тех языков, которые поддерживают автоматическое создание элементов интерфейса в классе реализации (то есть VB), вероятно, гораздо проще создать реализацию интерфейса с использованием заранее определенных имен, чем пытаться создавать имена на лету ,
3) Поскольку интерфейс может быть открыт за пределами определяющего приложения, имена удаляют неоднозначность, связанную с не определенным интерфейсом.
Например, при попытке реализовать метод интерфейса:
void Foo(string, string, int)
, скорее всего, приведет к существенно больше путаницы, чем ваш самодокументирован например. Однако это скорее проблема удобства использования интерфейса, чем техническая, хотя можно утверждать, что если интерфейс непригоден, существует основная техническая проблема.
Я думаю, что бы имена метод подписи соответствует !!! –
См. Мой отредактированный последний комментарий. –
То, что я имею в виду, похоже на то, что декларации методов являются согласованными между классами и интерфейсами ... –