Al leer esto , aprendí que era posible permitir que un método aceptara parámetros de múltiples tipos al convertirlo en un método genérico. En el ejemplo, el siguiente código se usa con una restricción de tipo para garantizar que "U" sea un IEnumerable<T>.
public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
return arg.First();
}
Encontré más código que permitía agregar restricciones de tipo múltiple, como:
public void test<T>(string a, T arg) where T: ParentClass, ChildClass
{
//do something
}
Sin embargo, este código parece imponer que argdebe ser un tipo de ParentClass y ChildClass . Lo que quiero hacer es decir que arg podría ser un tipo de ParentClass o ChildClass de la siguiente manera:
public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}
Su ayuda es apreciada como siempre!
where T : string, ya que stringes una clase sellada . Lo único que podría hacer es definir las sobrecargas stringy T : Exception, como explica @ Botz3000 en su respuesta a continuación.
argson los definidos por object, entonces, ¿por qué no simplemente eliminar los genéricos de la imagen y hacer el tipo de arg object? Que estas ganando