Я хочу, чтобы создать интерфейс с имуществом, которое имеет различные модификаторы доступности в производных классов, как:Как реализовать различные модификаторы доступности, когда я реализовать интерфейс
public interface IPrisoner
{
string PrisonerName { get; set; }
}
public class Prisoner : IPrisoner
{
public string PrisonerName { get; private set; }
}
, но в этом случае я получаю сообщение об ошибке:
'Prisoner' does not implement interface member 'IPrisoner.PrisonerName.set'. 'Prisoner.PrisonerName.set' is not public.
Как его реализовать?
Вы можете изменить интерфейс, чтобы разоблачить 'get'. Но что-либо в интерфейсе по умолчанию «public». – juharr
Вы не можете. Интерфейс говорит, что он должен быть общедоступным, поэтому он должен быть общедоступным. В противном случае, что вы ожидаете, если кто-то сделает «Заключенный IPrisoner = новый заключенный(); заключенный. PrisonerName = "Foo"; '? –
Вы не можете. Интерфейс требует как get, так и set. Единственной альтернативой является явная реализация интерфейса свойства. –