Contenedores en C#

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;
	}
}

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.