Я рассматривал явные реализации интерфейса в IL. Метод Method
в следующем классе (интерфейс IA
имеет один Method()
на нем):
public class B : IA
object IA.Method() {
/* code */
}
}
компилируется в следующую сигнатуру метода IL:
.method private hidebysig newslot virtual final instance object IA.Method() cil managed {
.override IA::Method
/* code */
}
Мой вопрос - почему имя метода в IL IA.Method()
, а не просто Method
? Что это на самом деле означает, и почему это не работает, если оно пропущено? Я ничего не могу найти в спецификации ECMA или в Google по этому поводу.