Вероятно, это было реализовано явно , например:
void IDisposable.Dispose()
{
// Code here
}
Либо это, либо он наследует метод от базового класса. Тот факт, что ClientBase<T>
является абстрактным, не означает, что он не может правильно реализовать IDisposable
. Действительно, будет иметь , чтобы либо реализовать его, либо повторно объявить его как абстрактный метод, чтобы заставить производный класс его реализовать.
В любом случае, метод будет каким-то образом.
Явная реализация интерфейса означает, что метод доступен только при просмотре экземпляра через тип интерфейса. Например:
class Foo : IDisposable
{
void IDisposable.Dispose() {}
}
...
Foo foo = new Foo();
foo.Dispose(); // Invalid: compile time error
IDisposable d = foo;
d.Dispose(); // Valid
((IDisposable)foo).Dispose(); // Valid (no need for temp variable)