Solo quería saber por qué las clases selladas no tienen restricciones de tipo genérico?¿Por qué no se permite que las clases selladas sean restricciones de tipo genérico?
Supongamos que tengo un simple fragmento de código en C# como bramido
public sealed class Base
{
public Base() { }
}
public class Derived<T>
where T : Base
{
public Derived() { }
}
cuando estoy una instancia del DerivedClass que estoy recibiendo 'Base' no es una restricción válida. Un tipo utilizado como restricción debe ser una interfaz, una clase no sellada o un parámetro de tipo.
Supongo que está generando código. No es como si el generador de códigos supiera que alguien puso un "sellado" en la clase. – Gabe
Y, por supuesto, con una lógica similar, no puede usar "objeto" como restricción, por el motivo opuesto; T ya va a ser convertible a objeto porque solo los tipos que son convertibles a objeto pueden usarse como argumentos de tipo, por lo que la restricción sería redundante. –
@EricLippert Aunque no tiene ningún beneficio funcional. Tiene un beneficio de mantenimiento porque puede cambiar mucho más fácilmente un tipo de restricción genérico que reemplazar todas las instancias de la clase sellada dentro de un nuevo tipo. Aunque es un pequeño beneficio, no veo por qué uno haría cumplir un tipo genérico no sellado. – Measuring