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?

¿Fue útil?

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 "

http://msdn.microsoft.com/en-us/library/ d5x73970.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top