Ejemplo n.º 1
0
        /// <summary>
        /// Las variables de tipo de valor contienen directamente sus valores, lo que significa que la memoria se asigna insertada en cualquier contexto en el que se declare la variable.
        /// más detalles aquí: https://docs.microsoft.com/es-es/dotnet/csharp/programming-guide/types/#value-types
        /// </summary>
        public static void DeValor()
        {
            Console.WriteLine($"-----{nameof(DeValor)}-----");
            Console.WriteLine();

            // los tipos por valor pueden ser por ejemplo los enteros
            int variable1 = 1;

            //  o las estructuras
            Console.WriteLine($"declare una variable de tipo {nameof(EstructuraPersona)} llamada 'persona'");
            EstructuraPersona persona = new EstructuraPersona
            {
                // esta es una forma de hacer la construcción del objeto simplificada asignando valores a las propiedades públicas que éste tenga
                Nombre   = "mi nombre",
                Apellido = "mi apellido"
            };

            Console.WriteLine($"mi estructura persona tiene Nombre: '{persona.Nombre}' y apellido: {persona.Apellido}.");

            // Cuando se envía como parámetro un tipo por valor éste no se ve afectado por las acciones que se realizan dentro de la función
            // ya que internamente lo que sucede es que se crea una copia de la variable con el scope local de la función que se ejecuta.
            Console.WriteLine("Ejecuto un método donde internamente modifico persona.");
            Modificar(persona);

            Console.WriteLine($"mi estructura persona tiene Nombre: '{persona.Nombre}' y apellido: {persona.Apellido}.");
        }
Ejemplo n.º 2
0
 private static void Modificar(EstructuraPersona persona)
 {
     persona.Nombre   = "otro nombre";
     persona.Apellido = "otro apellido";
 }