Estoy recibiendo el siguiente error:¿Puedo implementar una interfaz que contenga una propiedad que sea de tipo hijo a la requerida por la interfaz?
ClassName.PropertyName cannot implement IClassType.PropertyName because it does not have the matching return type of IBasePropertyType
Ahora, para el código:
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
}
¿Hay una manera de hacer lo que estoy tratando? Sé que el problema es con la co/contravariancia, pero parece que no puedo encontrar la manera de hacerlo.
¿Cuál es la pregunta? – Victor
@Victor: ¿Hay alguna manera de implementar una interfaz, pero tener una propiedad de tipo secundario para el tipo de propiedad definida en la interfaz? –