public static void UsoClasesEstructurasEnums() { Persona per1 = new Persona(); per1.Nombre = "Pablo"; per1.Edad = 18; Persona per2 = per1;// = new Persona(); PersonaStruct perStr1 = new PersonaStruct(); perStr1.nombre = "Pablo"; perStr1.edad = 18; PersonaStruct perStr2 = perStr1; //= new PersonaStruct(); per1.Nombre = "Lidia"; perStr1.nombre = "Lidia"; per1.Genero = TipoGenero.Mujer; per2.Genero = (TipoGenero)Enum.Parse(typeof(TipoGenero), "MUJER", true); Console.WriteLine(per1.Genero.ToString() + ", " + per2.Genero.ToString()); MostrarPersona_Valor(per1); MostrarPersona_Valor(per1); MostrarPersona_Ref(ref per2); MostrarPersona_Ref(ref per2); MostrarPersonaStruct_Valor(perStr1); MostrarPersonaStruct_Valor(perStr1); MostrarPersonaStruct_Ref(ref perStr2); MostrarPersonaStruct_Ref(ref perStr2); }
public void StructTest() { Persona Juan = new Persona();//se hace un objeto Juan Persona Pedro = Juan;//Juan y pedro, por referencia. PersonaStruct JuanStruct = new PersonaStruct();//se crea un objeto con las caracteristicas de struct. PersonaStruct PedroStruct = JuanStruct;//juanstruct se asigna a pedrostruct, pero no se altera pedro, porque se comporta como datos por valor y lo que tiene juanstruct, no se le pasa a pedrostruct. Juan.Nombre = "juan"; Juan.Edad = 22; JuanStruct.Nombre = "juan"; JuanStruct.Edad = 22; // los estruct son inmutables, siempre hacen una copia del dato no se afecta su valor por referencia. Assert.AreEqual("juan", Pedro.Nombre);//es por referencia, por lo tanto pedro se modifica. Assert.AreEqual(22, Pedro.Edad); Assert.IsNull(PedroStruct.Nombre);//es null porque juan struct se comporta como tipo por valor y no afecta a pedrostruct. Assert.AreEqual(0,PedroStruct.Edad);//es 0 porque cuando se inicializa la clase, todos los enteros se inicializan en 0, no copia el contenido de jaunstruct. }
static void Main(string[] args) { #region Request Info Console.Write("Nombre: "); String nombre = Console.ReadLine(); Console.Write("Edad: "); byte edad = Byte.Parse(Console.ReadLine()); Console.Write("Cargo: "); String cargo = Console.ReadLine(); #endregion Persona persona = new Empleado(cargo, nombre, edad); PersonaStruct persona2 = new PersonaStruct(); Console.WriteLine(persona2.Nombre); persona.Nombre = "Luis"; Console.WriteLine(persona.descripcion("-")); Console.WriteLine(persona.descripcion()); Console.WriteLine(saludo()); Console.WriteLine(new Program().saluda()); Console.WriteLine(new Program().dato); Console.WriteLine(data); Ciudades ciudades = Ciudades.GetInstance(); for (int i = 0; i < ciudades.valores.Length / 2; i++) { Console.WriteLine(ciudades.valores[i, 0] + ":" + ciudades.valores[i, 1]); } Console.ReadKey(); }
static void MostrarPersonaStruct_Ref(ref PersonaStruct persona) { Console.WriteLine(persona.ToString()); persona.nombre += " Mancillado"; }