Login
Пустой виртуальный метод вместо интерфейса
1779 просмотров
Перейти к просмотру всей ветки
in Antwort alex445 08.10.24 19:27
Т.е. в интерфейсе не объявляем геттер, тогда в имплементации можно его сделать с каким угодно уровнем доступа.
Именно. А также не стоит забывать и про internal. Это тоже очень полезная область видимости :) Есть правда еще protected internal и private protected, но эти ограничения я в реальной жизни еще не встречал :)
Проблема лишь в том, что если передать объект Presenter как IPresenter, то свойство DisplayName нельзя будет установить.
Ну это можно решить двумя интерфейсами:
public interface IPresenter { public string DisplayName { get; } } public interface IPresenterExt { public string DisplayName { get; set; } } public class Presenter : IPresenter, IPresenterExt { public string DisplayName { get; protected set; } }
или так:
public interface IPresenter { public string DisplayName { get; } } public interface IPresenterExt : IPresenter { public string DisplayName { set; } } public class Presenter : IPresenterExt { public string DisplayName { get; set; } }
но если я хочу ограничить действия некоторых из них в пределах одной иерархии классов?
Сформулируй проблему поточнее.