Существует аналогичная функциональность: явная реализация интерфейса.
public interface IA {
void foo();
// void bar(); // Removed method.
}
public class B : IA {
void IA.foo() {}
void IA.bar() {} // does not compile
}
Проблема в том, что если вы делаете это, вы не можете вызывать методы через указатель this
(изнутри класса) или через выражение, которое оценивается как B
- теперь необходимо привести к IA
.
Вы можете обойти это, создав открытый метод с той же сигнатурой и перенаправив вызов явной реализации следующим образом:
public class B : IA {
void IA.foo() { this.foo(); }
public void foo() {}
}
Однако это не совсем идеально, и я никогда не видел, чтобы это делалось на практике.