Han pisado mis propios dedos del pie con lo que pensé que era una pieza muy simple de código. El código habla mejor que las palabras, así que aquí está.Interfaz C# y combinación genérica. ¿Desea devolver <T> en lugar de su interfaz base
public interface IResponse
{
IResult Result { get; set; }
}
public class Response<T> : IResponse
where T : IResult
{
public T Result { get; set; }
// COMPILER ERROR: Property 'Result' cannot be implemented property from interface 'IResponse'. Type should be 'IResult'.
}
El compilador no me permite hacer esto porque requiere IResponse resultado ser iResult, sin embargo quiero tomar ventaja de los genéricos en la clase que implementa y escriba el resultado fuertemente a T. Es esto simplemente no es posible, o me he perdido algo trivial?
problema de hacer la interfaz genérica también es que lo uso en otra clase en la que no quiero que me obligan a especificar T. – Arkiliknam
Sí he pensado en eso. Es por eso que acabo de agregar la segunda y la tercera opción. –
Acabo de ver su actualización. Se ve bien y lo que estaba enterrado en mi cabeza en alguna parte. ¡Buena cosa! :) – Arkiliknam