Aquí hay un código C# que no se compila, dando el siguiente mensaje:no se puede convertir de 'cabo T' a 'Salida de componente'
no se puede convertir de 'cabo T' a 'Salida de componente'
public void Get<T>(out T c) where T : Component
{
m_components.TryGetValue(typeof(T), out c);
}
Aquí es código que hace compilar:
public void Get<T>(out T c) where T : Component
{
Component temp;
m_components.TryGetValue(typeof(T), out temp);
c = (T)temp;
}
me pregunto por qué el primer código no es válido desde el "donde T: Componente" establece explícitamente que T es del tipo Componente.
Gracias
¿Por qué necesitarías hacer "Obtener" un método genérico si T se define como del tipo Componente? Puede ser que usted no lo haya mencionado; t mencionó el escenario exacto aquí. –
* twiddles pulgares esperando que el Sr. Skeet nos aclare sobre este tema intrigante * – tster
Esto es un duplicado. http://stackoverflow.com/questions/1207144/c-why-doesnt-ref-and-out-support-polymorphism/1207302#1207302 –