Другой метод Add
- это явно реализованный метод интерфейса .
Когда метод интерфейса реализован явно, его нельзя вызвать без предварительной ссылки на тип интерфейса,что делает вызовы однозначными, и поэтому хорошо иметь несколько методов с одной и той же сигнатурой.
Чтобы сделать это в своем коде, вы должны сделать, например,
class MyCollection<T> : ICollection<T> {
public void Add() { ... }
void ICollection<T>.Add() { ... }
}
Это позволяет избежать необходимостипридумайте альтернативные имена методов, чтобы избежать коллизий с именами интерфейсов, когда вы хотите, чтобы метод интерфейса делал что-то немного отличное от другого метода.