Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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.
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
 static void MostrarPersonaStruct_Ref(ref PersonaStruct persona)
 {
     Console.WriteLine(persona.ToString());
     persona.nombre += " Mancillado";
 }