Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Recorrer una colección – sin genéricos
Un ArrayList no soporta genéricos.
ArrayList arrayList = new ArrayList();
arrayList.Add("cow");
arrayList.Add("dog");
arrayList.Add("elephant");
foreach(var item in arrayList)
{
Console.WriteLine(item);
}
Genéricos
Los tipos genéricos se encuentran incluidos dentro de los caracteres <>. Especifican el tipo de datos que va a almacenar, utilizar o devolver una clase o método.
Genéricos en colecciones
List <Alumno> alumnos= new List<Alumno>();
alumnos.Add(new Alumno("Paco", 10));
alumnos.Add(new Alumno("Hachi", 80));
alumnos.Add(new Alumno("Pablo", 17));
foreach(Alumno item in alumnos){
Console.WriteLine(item.nombre);
}
Notas
- No es necesaria la comprobación de tipos en tiempo de ejecución con lo cual reduce el uso de casting en el código.
- El código será menos ambiguo y más fácil de mantener.
Genéricos en clases
class GenericClass{
static void Main(string[] args){
Calculator<double> c = new Calculator<double>();
double r = c.Sum(2.0 , 2.0);
Console.WriteLine(r);
}
}
class Calculator<T> {
public T Sum<T>(T n1, T n2){
dynamic a = n1;
dynamic b = n2;
return a + b;
}
}