interface IAlpha
{
IBeta BetaProperty { get; set; }
}
interface IBeta
{
}
class Alpha : IAlpha
{
public Beta BetaProperty { get; set; } // error here
}
class Beta : IBeta
{
}
'InterfaceTest.Alpha' nie realizuje element interfejsu 'InterfaceTest.IAlpha.BetaProperty'. "InterfaceTest.Alpha.BetaProperty" nie może zaimplementować interfejsu "InterfaceTest.IAlpha.BetaProperty", ponieważ nie ma zgodnego typu powrotu "InterfaceTest.IBeta".C realizacja nieruchomość # interfejs
Moje pytanie brzmi, dlaczego implementacja własności jest ograniczona do tego samego typu. Dlaczego nie mogę zamiast tego użyć typu pochodnego?
Twoja klasa, która dziedziczy interfejs, zwraca Beta insteed z IBeta zadeklarowanego w interfejsie. –