Witam.
Piszę ponieważ mam problem z zrozumieniem interfejsu. Jeżeli chodzi implementowanie metod to wszystko jest dla mnie jasne, jednak w przypadku właściwości spotkałem się z sytuacją, której nie potrafię zrozumieć. Otóż w interfejsie ustawiłem właściwość, która miała być tylko do odczytu. Jednak klasa, która zaimplementowała ten interfejs, zaimplementowała get i set. Według mnie w takim wypadku kompilator powinien krzyczeć o błędzie i mówić, że właściwość Myproperty może być tylko do odczytu. Jednak się tak nie dzieje i pokazany kod działa, bez żadnych problemów. Teraz moje pytanie czemu tak się dzieje, czemu mogę dodać do właściwości MyProperty set.
interface IInterface
{
int MyProperty { get; }
}
class Probna : IInterface
{
private int myproperty;
public int MyProperty
{
get { return myproperty; }
set { myproperty = value; }
}
}
Probna p = new Probna();
p.MyProperty = 5;
Console.WriteLine(p.MyProperty);