Hay bastantes preguntas & respuestas sobre la piratería en torno a la limitación de C# que no permite tipos de retorno de método (y argumento) a tipos compatibles en sustituciones, pero ¿por qué existe esta limitación, ya sea en el compilador C# o en el CLR? Como veo, no hay nada que pueda romperse si se permite co/contra-varianza, entonces, ¿cuál es el razonamiento detrás de esto?¿Por qué C#/CLR no es compatible con el método de anulación co/contra-varianza?
Una pregunta similar se podría pedir a ampliar los parámetros de acceso - por ejemplo, sustituir un método interno protegido con un método público (algo que es compatible con Java, IIRC)
¿Por qué votar para cerrar? –