Я смотрел на явные реализации интерфейса в 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 об этом.