Also wenn ich es weglasse und per Interface aber ein set gefordert wird, geht es trotzdem weil es implizit da ist?
Wenn das Set fehlt generiert der Kompiler keine Set-Methode. Wird dies jedoch vom Interface gefordert dann muss auch der Set-Teil vorhanden sein. Wird dieser jedoch nicht benötigt so kein Code darin stehen oder ein Fehler geworfen werden falls versucht wird den Wert zu setzen.
class MyClass : IMyInterface { private string _farbCode = "xyz"; public string FarbCode { get { return _farbCode; } set { throw new NotSupportedException("Die Eigenschaft ist schreibgeschützt."); } } }
Oder es wird der Set-Teil bereits im Interface weggelassen.
D.h. der Kompiler weiß nicht was er mit dem set; anfangen soll. Lass das set; einfach weg und es funktioniert.
Hintergrund: Für Eigenschaften werden vom Kompiler eine Get- und eine Set-Methode erzeugt. Im obigen Code von dir ist das Set ein "leer" Methode und die gibt es nur wenn sie als abstract, partial (oder extern) deklariert ist.