Возможный дубликат:
Почему невозможно переопределить свойство только для геттера и добавить сеттер?
Допустим, у меня получились следующие интерфейсы:
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
. У него есть только геттер, но его МОЖНО изменить. Свойство только для чтения говорит о том, что свойство может быть изменено только внутри реализации.