En C# 4.0, ¿es posible derivar una clase de un parámetro de tipo genérico?

En C# 4.0, ¿es posible derivar una clase de un parámetro de tipo genérico?

Los tipos genéricos en C# no son plantillas de C++; recuerde, un tipo genérico debe funcionar para todos los posibles argumentos de tipo. Una plantilla solo necesita funcionar para las construcciones que realmente hace.

Esta pregunta es un duplicado; ver mi respuesta a

¿Por qué los genéricos de C# no pueden derivar de uno de los parámetros de tipo genérico como pueden hacerlo en las plantillas de C++?

para más pensamientos sobre esto. Básicamente, la respuesta corta es que los costos considerables no compensan los pequeños beneficios de la característica. Si no te gusta esa respuesta, mira mi segunda respuesta:

¿Por qué los genéricos de C# no pueden derivar de uno de los parámetros de tipo genérico como pueden hacerlo en las plantillas de C++?

Y si tampoco le gusta esa respuesta, vea la pregunta de seguimiento:

¿Cuáles son las buenas razones para desear que los genéricos de .NET puedan heredar uno de los tipos de parámetros genéricos?


No, esto no es posible. Por ejemplo, tome un tipo que se declare sealed . No puede heredar de esa clase, y no hay restricciones para limitar a los tipos no sellados, por lo que es imposible intentar heredar de ella a través de un parámetro genérico.