struct vs class en C#

Llevo poco en el lenguaje de C# por lo cual es bueno publicar cada cosa nueva que se aprende, si alguna vez han utilizado Lista de objetos en C# y se han preguntado como cambiar el valor de un elemento en particular de la lista, pues realmente es fácil.

Podemos ver el siguiente ejemplo, solo basta con seleccionar el objeto, como se muestra en el siguiente ejemplo, para de acuerdo al Framework que se este utilizando.

lista.Find( p => p.Id == 1 ).Nombre = "Pedro";
lista.Where( p => p.Id == 1 ).First().Nombre = "Pedro";

Veamos el siguiente Ejemplo:

	class MainClass
	{
		public static void Main (string[] args)
		{
			List LstPersonas = new List();
			LstPersonas.Add( new Persona(){ Id = 1, Nombre="Persona 1" , Telefono= "55 555 555" });
			LstPersonas.Add( new Persona(){ Id = 2, Nombre="Persona 2" , Telefono= "55 555 555" });
			LstPersonas.Add( new Persona(){ Id = 3, Nombre="Persona 3" , Telefono= "55 555 555" });
 
			foreach( var persona in LstPersonas )
			{
			   Console.WriteLine(string.Format("Id={0}, Nombre={1}, Telefono={2}",persona.Id ,persona.Nombre, persona.Telefono));
			}
 
			LstPersonas.Find( p => p.Id == 1 ).Nombre = "Pedro";
 
			foreach( var persona in LstPersonas )
			{
			   Console.WriteLine(string.Format("Id={0}, Nombre={1}, Telefono={2}",persona.Id ,persona.Nombre, persona.Telefono));
			}
 
		}
	}
 
	class Persona
	{
	     public int Id { get; set;}
	     public string Nombre { get; set;}
	     public string Telefono { get; set;}
	}

Bien ahora si podemos comenzar, bien resulta que si en el código anterior cambiamos simplemente la clase persona y la convertimos a una estructura, no va a dejar que se cambie el valor, para los que trabajan con mono no maraca error al compilar y para aquellos que trabajan con Visual Studio Express no los va a dejar compilar, por que resulta que a una estructura no se pueden cambiar los valores de sus propiedades, las estructuras son utilizadas únicamente para presentar datos, pueden encontrar mas al respecto en las ayuda de Visual Studio C# Aqui

Israel Arizmendi

Aprendiz de starcraft

Twitter Google+ 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *