У меня есть эти определения класса/интерфейса в C#C# унаследовал защищенный метод, реализующий интерфейс
public class FooBase {
...
protected bool Bar() { ... }
...
}
public interface IBar {
bool Bar();
}
Теперь я хочу создать класс Foo1, полученный из FooBase реализующий IBar:
public class Foo1 : FooBase, IBar {
}
Есть некоторый класс что компилятор использует унаследованный защищенный метод как общедоступную реализацию интерфейса?
Конечно, метод Foo1
bool IBar.Bar()
{
return base.Bar();
}
работы. Мне просто интересно, есть ли ярлык;)
Опуская этот метод, возникает ошибка компилятора: Foo1 не реализует элемент интерфейса IBar.Bar(). FooBase.Bar() является либо статическим, не общедоступным, либо имеет неправильный тип возврата.
Пояснение: Я разделяю наследование кода (иерархию классов) и реализацию функции (интерфейсы). Таким образом, для классов, реализующих один и тот же интерфейс, доступ к общему (унаследованному) коду очень удобен.