Могу ли я реализовать интерфейс, содержащий свойство дочернего типа для того, что требуется интерфейсу?

Я получаю следующую ошибку:

ClassName.PropertyName не может реализовать IClassType.PropertyName потому что у него нет соответствующего возвращаемого типа IBasePropertyType

Теперь для кода:

public class ClassName : IClassType
{
    public IChildPropertyType PropertyName { get; set; }
}

public interface IClassType
{
    public IBasePropertyType PropertyName { get; set; }
}

public interface IBasePropertyType
{
    // some methods
}

public interface IChildPropertyType : IBasePropertyType
{
    // some methods
}

Есть ли способ сделать то, что я пытаюсь сделать? Я знаю, что проблема в ко / контравариантности, но не могу понять, как это сделать.

9
задан ΩmegaMan 28 February 2018 в 19:48
поделиться