Hola de nuevo aqui les dejo un pequeno ejemplo de lo que son los genericos en C# una pequeña explicacion de lo que son genericos seria que por ejemplo cuando tenemos un metodo dentro de nuestra clase que recibe parametros por ejemplo de tipo int al no ser de tipo generico la clase ni nuestro metodo estamos obligados que al momento de instanciar nuestra clase y llamar al metodo obligatoriamente tenemos que pasarle el paramentro de tipo int cosa muy diferente al trabajar con genericos pues podemos crear clases y metodos que reciben parametros de cualquier tipo lo que nos facilita mucho el desarrollo de nuestro codigo sin mas que agregar ahi les dejo un codigo de muestra ya saben cualuier duda comuniquense con el staff!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
//ya qui en nuestro metodo principal "Main()" hacemos uso de nuestras clases genericas
static void Main(string[] args)
{
//Primero creamos una lista generica que se encuantra en el espacio de nombres
//System.Collections.Generics.List y como tipo agregamos nuestra clase llamada listagenerica
//pues el uso de genericos en c# y en .net no solo se limita a tipos como int string bool etc
List
milistagenerica = new List
();
// y agregamos algunos objetos a nuestra lista
milistagenerica.Add(new listagenerica("Octalh", "C++ , Delphi Coder", "Privada"));
milistagenerica.Add(new listagenerica("xxxnocturnoxxx", "C# .Net Coder", "Privada"));
// Con el siguiente bucle representamos el contenido de nuestra lista generica con un simple foreach
foreach (listagenerica Coder in milistagenerica)
{
Console.WriteLine("Nombre " + Coder.Nombre + "," + Coder.Puesto + "," + Coder.Direccion);
}
// Asi mismo podemos usar un bucle for
for (int i = 0; i < milistagenerica.Count; i++)
{
Console.WriteLine("Nombre " + milistagenerica[i].Nombre + "," + milistagenerica[i].Puesto + "," + milistagenerica[i].Direccion);
}
// Aqui creamos dos instancias de nuestra clase generica una de tipo boolean y otra de tipo int
tipos miclasetipos1 = new tipos();
miclasetipos1.analisis1(true);
tipos miclasetipos2 = new tipos();
miclasetipos2.analisis1(4500);
//Aqui instanciamos la clase saludo y le pasamos parametros de diferente tipo al metodo de la clase generica saludo1
saludos saludostring = new saludos();
Console.WriteLine(saludostring.saludo1("Variable tipo string"));
saludos saludosint = new saludos();
Console.WriteLine(saludosint.saludo1(5000));
}
}
// creamos una clase de tipo generico que en este caso le daremos a los metodos
// el parametro de tipo string
class saludos
{
//Creamos varios metodos de tipo generico
public string saludo1(t varcualquiertipo)
{
return "Hola " + varcualquiertipo;
}
}
// Creamos una clase de tipo generico aqui le daremos a los metodos que contiene
// parametros de diferente tipo
class tipos
{
public void analisis1(t tipo1)
{
Type mitipo = tipo1.GetType();
Console.WriteLine("La variable es de tipo " + mitipo.FullName);
}
}
// Esta clase contiene una lista generica
class listagenerica
{
//creamos tres campos dos de ellos tipo string y uno mas tipo int
// Asi mismo los encapsulamos para no tener acceso directamente
// alas variables desde fuera de esta propia clase si no unicamente
// a las propiedades que hemos creado gracias a la encapsulacion del campo
string nombre;
public string Nombre
{
get { return nombre; }
set { nombre = value; }
}
string puesto;
public string Puesto
{
get { return puesto; }
set { puesto = value; }
}
string direccion;
public string Direccion
{
get { return direccion; }
set { direccion = value; }
}
//Aqui creamos el constructor primario de la clase de la clase
public listagenerica()
{
nombre = "No establecido";
puesto = "No aplica";
direccion = "No aplica";
}
// Aqui creamos el constructor secundario de la clase que al momento de que la
// instanciemos nos permitira agregar valores a nuestro objeto
public listagenerica(string nombre, string puesto, string direccion)
{
this.nombre = nombre;
this.puesto = puesto;
this.direccion = direccion;
}
}
}
Comentarios
No hay comentarios para “Generics C#”
Deja un comentario