Sola lettura e scrivi solo proprietà automatiche in Interfaccia

Avevo letto che le proprietà auto implementate non possono essere solo leggere o scrivere solo. Possono solo essere letti e scritti.

Tuttavia, mentre imparavo le interfacce mi sono imbattuto in foll. codice, che crea un tipo di sola lettura / sola scrittura e lettura-scrittura di proprietà automatiche. È accettabile?

public interface IPointy { // A read-write property in an interface would look like: // retType PropName { get; set; } // while a write-only property in an interface would be: // retType PropName { set; } byte Points { get; } } 

Questo non è auto-implementato. Le interfacce non contengono l’implementazione.

È una dichiarazione che l’interfaccia IPointy richiede una proprietà di tipo byte , chiamata Points , con un getter pubblico .


È ansible implementare l’interfaccia in qualsiasi modo necessario fintanto che esiste un getter pubblico; se da una auto-proprietà:

 public class Foo: IPointy { public byte Points {get; set;} } 

Nota che il setter può ancora essere privato:

 public class Bar: IPointy { public byte Points {get; private set;} } 

Oppure, puoi scrivere esplicitamente un getter:

 public class Baz: IPointy { private byte _points; public byte Points { get { return _points; } } }