qué - que es una instancia en c#
Genéricos en C#: ¿cómo puedo crear una instancia de un tipo de variable con un argumento? (1)
Eche un vistazo a Activator.CreateInstance
. Por ejemplo:
var instance = Activator.CreateInstance(typeof(T), new object[] { null, null });
Obviamente reemplazando los valores null
con los valores esperados por uno de los constructores del tipo.
Si recibe un error de compilación, cannot convert object to type T
, entonces incluya as T
:
var instance = Activator.CreateInstance(typeof(T),
new object[] { null, null }) as T;
Esta pregunta ya tiene una respuesta aquí:
Tengo una clase de genéricos, donde quiero crear una instancia de un objeto con el tipo genérico. Quiero usar un argumento para el constructor del tipo.
Mi código:
public class GenericClass<T> where T : Some_Base_Class, new()
{
public static T SomeFunction(string s)
{
if (String.IsNullOrEmpty(s))
return new T(some_param);
}
}
Me sale un error en el
new T(some_param)
''T'': no puede proporcionar argumentos al crear una instancia de un tipo de variable
¿Alguna idea de cómo puedo hacer esto?