Я пытаюсь использовать защищенный метод по умолчанию в интерфейсе C#, но я не могу назвать его из моего класса реализации. Например: < /p>
interface IInterface
{
protected void Protected() { }
}
class Class : IInterface
{
public Class()
{
this.Protected(); // Fails with: 'Class' does not contain a definition for 'Protected' and no accessible extension method 'Protected' accepting a first argument of type 'Class' could be found (are you missing a using directive or an assembly reference?)
((IInterface)this).Protected(); // Fails with: Cannot access protected member 'IInterface.Protected()' via a qualifier of type 'IInterface'; the qualifier must be of type 'Class' (or derived from it)
}
}
< /code>
Прямые и явные вызовы не могут компилироваться. Почему это и как я могу вызвать защищенную реализацию по умолчанию из моего класса? Есть ли обходной путь или рекомендуемый шаблон для этого сценария? У меня есть ситуация, когда я не могу сделать это как абстрактный базовый класс, и мне нужно было работать для тех случаев, когда метод не реализован.
Подробнее здесь: https://stackoverflow.com/questions/796 ... ting-class
Почему я не могу вызвать защищенный метод интерфейса по умолчанию из класса реализации в C#? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему защищенный метод внутреннего класса интерфейса Java доступен снаружи?
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему защищенный метод внутреннего класса интерфейса Java доступен снаружи? [дубликат]
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-