interfaccia definisce API pubblica. Se API pubblica contiene solo getter, allora si definisce solo getter Interfaccia:
public interface IBar
{
int Foo { get; }
}
setter privato non fa parte della API pubblica (come qualsiasi altro membro privato), quindi non è possibile definire in interfaccia. Ma sei libero di aggiungere qualsiasi membro (privato) per interfacciare l'implementazione. In realtà non importa se setter sarà attuato come pubblico o privato, o se ci sarà setter:
public int Foo { get; set; } // public
public int Foo { get; private set; } // private
public int Foo
{
get { return _foo; } // no setter
}
public void Poop(); // this member also not part of interface
Setter non fa parte di interfaccia, in modo che non può essere chiamato tramite l'interfaccia:
IBar bar = new Bar();
bar.Foo = 42; // will not work thus setter is not defined in interface
bar.Poop(); // will not work thus Poop is not defined in interface
fonte
2013-08-15 09:38:41
Grazie, mi hai salvato –
Per qualche motivo non posso MAI ricordarlo. Penso di essere atterrato su questa pagina tramite Google circa 13 volte nella mia carriera. LOL – Dan
@Dan Non sei solo: D – Vahid