c# - genericas - El tipo ''T'' no se puede usar como parámetro de tipo ''T'' en el tipo o método genérico
restricciones en c# (1)
El problema es que el método AddObject devuelve un Componente . Necesita decirle al compilador que su T es realmente un tipo de Componente.
Adjunte una restricción genérica a su método, para asegurarse de que sus T
s son Component
protected void AttachComponent<T>() where T : Component
{
// Your code.
}
Tengo el siguiente método:
protected T AttachComponent<T>(){
T gsComponent = gameObject.GetComponent<T>();
if(gsComponent == null){
gsComponent = gameObject.AddComponent<T>();
}
return gsComponent;
}
En la línea AddComponent
, recibo el siguiente error:
The type ''T'' cannot be used as type parameter ''T'' in the generic type or method ''GameObject.AddComponent<T>()''.
There is no boxing conversion or type parameter conversion from ''T'' to ''UnityEngine.Component''.
No estoy seguro de qué puedo hacer para solucionar este error, ¿por qué no puedo hacer esto?