Переопределение определений интерфейса
Возможный дубликат:
Почему невозможно переопределить свойство только для получения и добавить установщик?
Допустим, я получил следующие интерфейсы:
public interface IMessage
{
bool KeepAlive { get; }
}
public interface IRequest : IMessage
{
bool KeepAlive { get; }
}
Проблема в том, что я хочу IReponse
интерфейс для установки:
public interface IReponse : IMessage
{
bool KeepAlive { get; set; }
}
- Почему это не разрешено?
- Какие проблемы я могу получить, если я это сделаю
new bool KeepAlive { get; set; }
,
Обновить:
Я прочитал другой вопрос, и он говорит, что не ожидается, что свойство изменится. Я не согласен. Давайте возьмем для примера Socket.Connected
имущество. У него есть только геттер, но он МОЖЕТ быть изменен. Свойство только для чтения говорит о том, что свойство может быть изменено только внутри реализации.