Lo que significa el término “tipo desnudo restricción” se refieren a?
-
20-09-2019 - |
Pregunta
Recientemente he leído un término "tipo de restricción desnudo" en el contexto de los genéricos. Lo que lo hace ¿media? ¿Dónde la utilizamos?
Solución
MSDN :
Constraint Description where T : U The type argument supplied for T must be or derive from the argument supplied for U. This is called a naked type constraint.
Cuando un parámetro de tipo genérico se utiliza como una restricción, se denomina un tipo de restricción desnudo. restricciones de tipo desnudos son útiles cuando una función miembro con su propio parámetro de tipo tiene que limitar ese parámetro para el parámetro de tipo del tipo que contiene, como se muestra en el siguiente ejemplo:
class List<T>
{
void Add<U>(List<U> items) where U : T {/*...*/}
}
Otros consejos
Como acotación al margen, es extraño para mí que este término algo salaz logró hacerlo en la documentación de MSDN. Desde luego, no llamamos a estas restricciones restricciones de tipo "desnuda" en el equipo compilador de C # y me sorprendió, impactados! para descubrir hace unos años que esto es lo que dice la documentación. Por lo general, los llamamos "las limitaciones de los parámetros de tipo". No tengo ni idea de cómo se metió en la documentación, en primer lugar este término; es probable que haya una historia interesante allí.
"Cuando un parámetro de tipo genérico se utiliza como una limitación, se llama un tipo de restricción desnudo. Restricciones de tipo desnudo son útiles cuando una función miembro con su propio parámetro de tipo tiene que limitar ese parámetro para el parámetro de tipo del tipo que contiene "